以下是抛出异常:
Pattern.matches(""+input.charAt(i),"\\s");
java.util.regex.PatternSyntaxException:
Unclosed character class near index 0.
我不明白为什么。我匹配的文本是否也需要转义字符?
Screenshot工作空间以防万一。
答案 0 :(得分:5)
您输入的参数顺序错误(来自documentation)
Pattern.matches(String regex, CharSequence input)
答案 1 :(得分:2)
你使用它的方式似乎是错误的。 你应该做
Pattern p = Pattern.compile("[ \\t\\n]");
Matcher m = p.matcher(""+input.charAt(i));
boolean b = m.matches();
<强> From the reference 强>
答案 2 :(得分:1)
有一个特殊的空格类。您的代码可以简化为:
Pattern.matches("\\s", <your_input>);
答案 3 :(得分:1)
我想它应该是
Pattern.matches("\\s",String.valueOf(input.charAt(i));
答案 4 :(得分:0)
最好以这种方式分手......
Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher("Your_Source_String");