java - J用另一个单词替换字符串中单词的所有实例而不使用replace()
问题描述
如何在不使用 replace() 的情况下将字符串中某个单词的所有实例替换为另一个单词。这是我尝试过的代码。这段代码什么也没打印。
public class replaceWord {
public static String replaceWord(String s) {
int length = s.length();
String result = "";
for (int test = 0; test <= length-5; test++) {
if (s.substring(test, test + 5).equals("Python")) {
result += s.substring(0, test) + " Java " + s.substring(test + 5, length);
}
}
return result;
}
public static void main(String args[]) {
String test = "Oh my god I love Python so much!";
System.out.println(replaceWord(test));
}
}
解决方案
问题是您对 的使用substring
,JavaDoc为该方法声明了以下内容:
子字符串从指定的 beginIndex 开始并延伸到索引 endIndex - 1 处的字符。
因此,要获得一个长度为 6 个字符的字符串“Python”,您应该使用:
s.substring(test, test + 6).equals("Python")