繁体   English   中英

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

[英]How can I check if a specific string occurs multiple times in an other string?

我的代码从用户处获取输入,如果有两个"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);

有很多方法可以解决此问题。 这是其中的三个

  1. 比较indexOflastIndexOf

     String cheese; String bread = "bread"; int firstIndex = s.indexOf(bread); int lastIndex = s.lastIndexOf(bread); if (firstIndex == -1) { cheese = "no bread"; } else if (lastIndex == firstIndex) { cheese = "only one bread"; } cheese = s.substring(firstIndex + bread.length(), lastIndex); System.out.print(cheese); 
  2. 常用表达:

     Matcher m = Pattern.compile("bread(.+?)bread").matcher(s); if (m.find()) { System.out.println(m.group(1)); } else { System.out.println("Not enough bread"); } 
  3. 分裂:

     String[] parts = s.split("bread"); if (parts.length == 3) { System.out.println(parts[1]); } else { System.out.println("Not enough or too much bread"); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM