我希望将用户输入大写的所有内容和某些字母替换为数字或符号。我试图利用.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]
答案 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"));