问题在java中的字符

时间:2015-03-23 19:58:27

标签: java

我会在java中创建一个简单的代码来替换字母' z'通过信件' y' >>>这是代码

String s= "generalization";
            for(int i=0;i<s.length();i++){
                if(s.charAt(i)=='z') s.charAt(i)='y';

编译器向我返回错误&gt;&gt;&gt;为什么呢?

3 个答案:

答案 0 :(得分:2)

Strings是不可变的。您可以使用简单的字符数组并更改相应索引处的字符

答案 1 :(得分:1)

或许这样的事情:

    String s = "Generalization";
    char[] sChars = s.toCharArray();
    for (int i = 0; i < sChars.length; i++) {
        if (sChars[i] == 'z') {
            sChars[i] = 'y';
        }
    }
    s = String.copyValueOf(sChars);
    System.out.println(s);

打印出来:Generaliyation

或者像在另一个答案中建议的那样,在这种情况下,有一种称为Regular expressions又名regex的东西,同样的事情也可以通过写作完成:

String s = "Generalization";
s = s.replace("z", "y");
System.out.println(s);

这也打印出:Generaliyation。

答案 2 :(得分:1)

您可以使用String类的方法replaceAll

String s = "generalization";
s = s.replaceAll("[z]", "y");

小心,第一个参数是正则表达式!