如何检查特定字符串是否在另一个字符串中多次出现?

我的代码从用户那里获取输入,如果有两个"bread"子字符串,则打印它们之间的字符串。例如,"breadjavabread"输出"java"。但是,当我的代码只有一个"bread"字符串时,会弹出一个错误。例如,"usjdbbreaddudub"。我该如何解决这个问题?


String cheese = "no bread";

String bread = "bread";

for (int i = 0; i < s.length() - 5; i++)

{

  String m = s.substring(i, i + 5);

  if (m.equals(bread))

  {

    cheese = s.substring(s.indexOf(bread) + bread.length(), s.lastIndexOf(bread));

  }

}


System.out.print(cheese);


皈依舞
浏览 89回答 1
1回答

慕哥9229398

有很多方法可以解决这个问题。这是其中的3个比较indexOf和lastIndexOfString cheese;String bread = "bread";int firstIndex = s.indexOf(bread);int lastIndex = s.lastIndexOf(bread);if (firstIndex == -1) {&nbsp; &nbsp; cheese = "no bread";} else if (lastIndex == firstIndex) {&nbsp; &nbsp; cheese = "only one bread";}cheese = s.substring(firstIndex + bread.length(), lastIndex);System.out.print(cheese);常用表达:Matcher m = Pattern.compile("bread(.+?)bread").matcher(s);if (m.find()) {&nbsp; &nbsp; System.out.println(m.group(1));} else {&nbsp; &nbsp; System.out.println("Not enough bread");}分裂:String[] parts = s.split("bread");if (parts.length == 3) {&nbsp; &nbsp; System.out.println(parts[1]);} else {&nbsp; &nbsp; System.out.println("Not enough or too much bread");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java