首页 > 解决方案 > 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));
  }
}

标签: java

解决方案


问题是您对 的使用substringJavaDoc为该方法声明了以下内容:

子字符串从指定的 beginIndex 开始并延伸到索引 endIndex - 1 处的字符。

因此,要获得一个长度为 6 个字符的字符串“Python”,您应该使用:

s.substring(test, test + 6).equals("Python")

推荐阅读