Java - 将单个字符串与字符串

时间:2015-12-10 20:51:37

标签: java string char compare

感谢您花时间看我的问题。 这是我为解密邮件而创建的方法之一。这不是整个代码,请相信我,我一直在努力搞乱代码,我不是只是跳到这里,希望你伙计们会为我做的,我只想问一下如何做点什么!

正如你们所知道的那样,我真的无法改变我目前所拥有的东西,因为我根据作业受到限制。

我的问题:我需要让任何字符“x”等于空格或“”。基本上我正在尝试对字符串中的每个“x”进行硬编码以成为一个空格,因为它不打印它应该是什么。

我现在有什么:

public static String decryption(String s, int n)
{
    int originalChar, decryptedChar;
    String message = "";
    char c;

    for(int i = 0; i < s.length(); ++i)
    {
        c = s.charAt(i);
        decryptedChar = (int)c;
        if(decryptedChar + n > 126)
            originalChar = 32 + ((decryptedChar + n) - 113);
        // Problem here
        if(c.equals("x"))
            originalChar.equals(" ");
        else
            originalChar = decryptedChar + n;
        message = message + (char)originalChar;  
    }//end for loop
    return message;
}//end method

我标记了问题区域。如果有人能告诉我如何正确地做到这一点,那么我可以使任何“x”等于“”而不是那么棒!谢谢你的时间。

3 个答案:

答案 0 :(得分:0)

你的问题在于:

originalChar.equals(" ");

equals()方法是一种检查相等性的方法 - 如果originalChar等于" ",则返回true,并且在您的情况下重要的是 - 它不会以任何方式更改originalChar,只需将其与{{ 1}}。

如果你想将originalChar设置为&#34; &#34;,您需要" "

无论如何,更简单的解决方案是:

originalChar = " "

答案 1 :(得分:0)

其中一个问题是.equals。这并不是要对一个角色进行比较,而只是对一个角色进行比较。

下面您尝试将字符串分配给带有&#34;&#34; s的字符,字符分配需要&#39;

我没有那么多的加密部分所以我嘲笑了一个简单的替换代码。

额外奖励:您可能希望确保x和X都被替换。

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String s = "xxistheXbestxandxmorexxHehehe";
    int n = 100;
    String message = decryption(s, n);
    System.out.println(message);

}


public static String decryption(String s, int n)
{
    int originalChar, decryptedChar;
    String message = "";
    String ret = "";
    char c;

    for(int i = 0; i < s.length(); ++i)
    {
        c = s.charAt(i);
        decryptedChar = (int)c;
        if(decryptedChar + n > 126)
            originalChar = 32 + ((decryptedChar + n) - 113);
        // Problem here
        if(c =='x')
            {originalChar = ' ';
            c = ' ';}
        else
            {originalChar = decryptedChar + n;
            c = c;}
        message = message + (char)originalChar;
        ret += c;
    }//end for loop
    //return message;
    return ret;
}//end method

答案 2 :(得分:0)

使用String类的方法replaceAll。

例如:

String a = "AxBxCxD";
String b = a.replaceAll("x"," ");

字符串b是你想要的,即“A B C D”。你需要b,因为replaceAll不会改变a。 如果要更改a,可以将其设置为b:

a = b;

这就是全部:)