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