在java中有趣(或没有),匹配var的计算结果为true,但在android中却没有:
CharSequence target = "man on";
boolean match = target.toString().matches("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+");
知道为什么会这样吗?
感谢。
PS:我通过导入和使用Matcher来实现它。
Pattern pattern = Pattern.compile("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+");
Matcher matcher = pattern.matcher(target);
然后matcher.matches()在" man on"上评估为true。
答案 0 :(得分:0)
我认为这里的问题在于CharSequence
方法的实施方式不正确,或者在toString()
的实际类中忽略了覆盖target
。
Pattern#matcher(target)
接受CharSequence
,String#matches()
对String
进行操作。如果target.toString()
返回的字符串不等于target
的实际内容,则结果可能会有所不同。