Java .替换以用符号替换输入字母

Java .替换以用符号替换输入字母,java,string,replace,Java,String,Replace,我想让用户输入的所有内容都大写,并用数字或符号替换某些字母。我试图利用。替换,但有些事情不对劲。我不确定我做错了什么 public class Qbert { public static void main(String[] args) { //variables String str; //get input Scanner kb = new Scanner(System.in); System.

我想让用户输入的所有内容都大写,并用数字或符号替换某些字母。我试图利用。替换,但有些事情不对劲。我不确定我做错了什么

public class Qbert
{
    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()//make all letters entered uppercase
        //sort specific letters to make them corresponding number, letter, or symbol
            + str.replace("A,@")+ str.replaceChar("E","3")+ str.replaceChar ("G","6")
            + str.replaceChar("I","!")+ str.replaceChar("S","$")+ str.replaceChar ("T","7"));
    }
}
这应该是你想要的。希望这对你有所帮助

这应该是你想要的。希望这对您有所帮助。

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

并接受两个参数:

public String replace(CharSequence target, CharSequence replacement)
替换此字符串中与文字目标匹配的每个子字符串 具有指定的文字替换序列的序列。这个 例如,替换从字符串的开头一直进行到结尾 例如,将字符串“aaa”中的“aa”替换为“b”将导致 “ba”而不是“ab”

您编写了
str.replace(“A,@”)+…
,而不是
str.replace(“A”,“@”)+…
,等等

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

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

并接受两个参数:

public String replace(CharSequence target, CharSequence replacement)
替换此字符串中与文字目标匹配的每个子字符串 具有指定的文字替换序列的序列。这个 例如,替换从字符串的开头一直进行到结尾 例如,将字符串“aaa”中的“aa”替换为“b”将导致 “ba”而不是“ab”

您编写了
str.replace(“A,@”)+…
,而不是
str.replace(“A”,“@”)+…
,等等


还有一件事——使用Eclipse或Intellij IDEA等优秀的IDE,它们会突出显示代码中存在错误的部分。

在Java中,字符串是不可变的。这意味着修改字符串将产生一个新字符串。例如

str.replace(“a”、“b”)

这将替换新字符串中出现的所有“a”到“b”。原始字符串将不受影响。因此,要在实际字符串上应用格式,我们必须编写:

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"));

在Java中,字符串是不可变的。这意味着修改字符串将产生一个新字符串。例如

str.replace(“a”、“b”)

这将替换新字符串中出现的所有“a”到“b”。原始字符串将不受影响。因此,要在实际字符串上应用格式,我们必须编写:

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"));
由于要对同一字符串进行多次更改,只需使用 str.toUpperCase().replace().replace()。。。。这意味着你在付出 str.toUpperCase()到第一个replace函数的输出,依此类推 在

由于要对同一字符串进行多次更改,只需使用 str.toUpperCase().replace().replace()。。。。这意味着你在付出 str.toUpperCase()到第一个replace函数的输出,依此类推 在


你得到的结果是什么?你期望的结果是什么?我没有得到任何结果。我得到一个错误:没有找到合适的替换方法,并且它不适用。最终,我尝试将输入的任何字母大写,并将6个字母a e g I s t作为不同的符号。我注意到了大写字母。@J.J.Crux编辑了答案以符合您的目的:)啊,我明白了,您正在制作一个l33t语音转换器:D您得到了什么结果?你期望的结果是什么?我没有得到任何结果。我得到一个错误:没有找到合适的替换方法,并且它不适用。最终,我尝试将输入的任何字母大写,并将6个字母a e g I s t作为不同的符号。我已经处理好了大写字母。@J.J.Crux编辑了答案以符合您的目的:)啊,我明白了,您正在制作一个l33t语音转换器:但他会立即输出字符串,所以这很好。从代码中可能看不出这一点,因为在
println
+
(字符串连接)之间有一条注释,这是一个很好的解释。在最终答案中添加次要格式。但是他会立即输出字符串,所以没问题。从代码中可能看不出这一点,因为在
println
+
(字符串连接)之间有一条注释,这是一个很好的解释。在最终答案中添加次要格式。