Java 仅使用循环替换字符串中字符的所有实例

Java 仅使用循环替换字符串中字符的所有实例,java,string,loops,Java,String,Loops,因此,正如标题所示,我有一个家庭作业问题,我很难解决。仅使用基本的字符串方法length、charAt、substring、equals、equalsIgnoreCase和loops,我必须替换用户输入字符串中的所有字符实例,并用用户想要的新字符代替旧字符打印新字符串。我不知道如何在不使用indexOf的情况下定位和存储字符串中字符的所有实例。这是我写的一些基本代码,如有任何指导,将不胜感激。我不知道如何仅使用这些基本字符串方法替换字符的所有实例 String letter;

因此,正如标题所示,我有一个家庭作业问题,我很难解决。仅使用基本的字符串方法length、charAt、substring、equals、equalsIgnoreCase和loops,我必须替换用户输入字符串中的所有字符实例,并用用户想要的新字符代替旧字符打印新字符串。我不知道如何在不使用indexOf的情况下定位和存储字符串中字符的所有实例。这是我写的一些基本代码,如有任何指导,将不胜感激。我不知道如何仅使用这些基本字符串方法替换字符的所有实例

        String letter;

        System.out.println("Enter the character you want to replace");
        input = keyboard.nextLine();

        int characterAt = 0;
        for (characterAt = 0; characterAt < savedInput.length(); characterAt++)
        {
            letter = "" + savedInput.charAt(characterAt);
                if(input.equals(letter))
            {
                System.out.println("Enter the new character");
                input = keyboard.nextLine();
                System.out.println("The new string is: " );

            }
        }

有几种方法可以做到这一点。您可以将字符串转换为字符数组-。然后你需要迭代数组,用新值替换char

char[] chars = "lorem ipsum sit amet".toCharArray();
char newValue = 'X';
for (int i = 0; i < chars.length; i++) {
      if (chars[i] == 'm') {
          chars[i] = newValue;
      }
}
System.out.println(new String (chars)); // loreX ipsuX sit aXet
您甚至可以为此使用流API:

String newString = "lorem ipsum sit amet".chars().map(el -> {
    if ((char) el == 'm') {
        return 'X';
    } else {
        return el;
    }
}).collect(StringBuilder::new,
        StringBuilder::appendCodePoint, StringBuilder::append)
        .toString();
System.out.println(newString); // loreX ipsuX sit aXet
String newString = "lorem ipsum sit amet".chars().map(el -> {
    if ((char) el == 'm') {
        return 'X';
    } else {
        return el;
    }
}).collect(StringBuilder::new,
        StringBuilder::appendCodePoint, StringBuilder::append)
        .toString();
System.out.println(newString); // loreX ipsuX sit aXet