.replace用符号替换输入字母

时间:2016-03-09 21:51:58

标签: java string replace

我希望将用户输入大写的所有内容和某些字母替换为数字或符号。我试图利用.replace,但有些事情是不对的。我不知道我做错了什么?

age_range = ['Age35-44', 'Age0-14', 'Age65-74', 'Age45-54', 'Age55-64', 'Age15-24', 'Age25-34']

freq = [194, 11, 12, 142, 51, 223, 310]

4 个答案:

答案 0 :(得分:3)

在Java中,字符串是不可变的。这意味着修改字符串将导致新字符串。 E.g。

str.replace("a", "b");

这将取代所有出现的' a'到''在一个新的字符串中。原始字符串将不受影响。因此,要在实际字符串上应用格式,我们必须写:

str = str.replace("a", "b");

同样,如果我们想要进行多次替换,我们需要将替换调用附加在一起,例如。

str = str.replace("a","b").replace("c", "d");

通过这种方式,如果要执行替换,代码中的最后一个system.out将是:

System.out.println(str.toUpperCase().replace("A","@").replace("E","3")
    .replace("G","6").replace("I","!").replace("S","$").replace("T","7"));

答案 1 :(得分:1)

String没有replaceChar方法。您可能想要使用方法replace

String.replace()有两个参数:

public String replace(CharSequence target, CharSequence replacement)
  

替换此字符串中与文字目标匹配的每个子字符串   具有指定文字替换序列的序列。该   替换从字符串的开头到结尾,为   例如,替换" aa"用" b"在字符串" aaa"会导致   " BA"而不是" ab"。

您已撰写str.replace("A,@")+...而不是str.replace("A","@")+...,依此类推

还有一件事 - 使用像Eclipse或Intellij IDEA这样的好IDE,它们会突出显示代码中有错误的部分。

答案 2 :(得分:0)

public static void main(String... args) {

    // variables
    String str;
    // get input
    Scanner kb = new Scanner(System.in);
    System.out.print(" Please Enter a Word:");
    // accept input
    str = kb.nextLine();
    System.out.print("");
    System.out.println(str.toUpperCase()); // Upper Case

    System.out.println(str.toUpperCase().replace("A", "@").replace("E", "3")
            .replace("E", "3").replace("G", "6").replace("I", "!").replace("S", "$").replace("T", "7") );

}

这应该像你想要的那样工作。希望你觉得这很有帮助。

答案 3 :(得分:0)

  

如果您想对同一个字符串进行多次更改,只需使用即可   str.toUpperCase()。replace()。replace()....这意味着你正在给予   str.toUpperCase()的输出到第一个替换函数等等   上...

         System.out.println(str.toUpperCase()
                               .replace("A","@")
                               .replace("E","3")
                               .replace("G","6")
                               .replace("I","!")
                               .replace("S","$")
                               .replace("T","7"));