我正在尝试使用while循环检查代码块是否已完成。当字符串中不再有'+',' - ','*','/','('或')'的实例时,它将达到此状态。我发布的代码是我的尝试,虽然它没有用。
while (string.contains("+-*/()") == false)
{
modifier code
}
答案 0 :(得分:1)
对于稍微减少回溯和逃避的解决方案:
String quoted = Pattern.quote("+-*/()");
Pattern pattern = Pattern.compile("[" + quoted + "]");
while (pattern.matcher(string).find()) {
// modifier code
}
更好的做法是避免在循环中制作Matcher
,并在修饰符代码中使用Matcher.appendReplacement()
和Matcher.appendTail()
在{中创建结果{1}}一次通过。但这取决于修饰符代码的作用。 (而且我仍然需要了解你如何使用这些方法。)
答案 1 :(得分:0)
您可以使用String#matches()
和正则表达式,如:
while (!string.matches(".*[-+/()*]+.*"))
{
// modifier code
}
现在修改正确的正则表达式