Java 检查字符串是否包含给定字符
我试图使用while循环检查代码块是否已完成。当字符串中不再有“+”、“-”、“*”、“/”、“(”或“)”的任何实例时,它将已达到此状态。我发布的代码是我的尝试,尽管它不起作用Java 检查字符串是否包含给定字符,java,string,Java,String,我试图使用while循环检查代码块是否已完成。当字符串中不再有“+”、“-”、“*”、“/”、“(”或“)”的任何实例时,它将已达到此状态。我发布的代码是我的尝试,尽管它不起作用 while (string.contains("+-*/()") == false) { modifier code } 可以使用和正则表达式,如: while (!string.matches(".*[-+/()*]+.*")) { // modifier code } 对于回溯和转义稍少的解决方案,编辑以立即更
while (string.contains("+-*/()") == false)
{
modifier code
}
可以使用和正则表达式,如:
while (!string.matches(".*[-+/()*]+.*"))
{
// modifier code
}
对于回溯和转义稍少的解决方案,编辑以立即更正正则表达式:
String quoted = Pattern.quote("+-*/()");
Pattern pattern = Pattern.compile("[" + quoted + "]");
while (pattern.matcher(string).find()) {
// modifier code
}
更好的方法是避免在循环中使用
匹配器
,并在修改器代码中使用and一次性在StringBuffer
中创建结果。但这取决于修饰符代码的作用。(我还得重新学习一下你是如何使用这些方法的。)你到底有什么问题?您能在修改后的代码部分也显示代码吗?contains()
将搜索该短语的实例,而不是所有这些字符的实例。因此,除非字符串字面上包含+-*/()
,否则它将始终返回false。如果您不进行任何处理,为什么不直接使用string#replaceAll(string,string)
?此正则表达式是错误的;您忘记转义character类中的-
。@DoorknobofSnow我现在已经更正了顺序,因此无需转义