我想检查我从Textfield获取的字符串 有一个逗号,为了放弃它并用点来要求一个新的值。
我尝试使用
textTestAr.trim().matches("^[,]+$")
但没有任何反应,而这
^[1-9,]+$
可以解决这个问题,但也会匹配像1这样的数字。
答案 0 :(得分:10)
您不需要在此问题上强制使用正则表达式。一个简单的textTestAr.indexOf(',')
即可。
答案 1 :(得分:4)
为什么不在这里使用String#contains而不是正则表达式。
答案 2 :(得分:4)
就这么做
if(textTestAr.contains(",")) System.out.println("It does!");
答案 3 :(得分:3)
只做textTestAr.contains(",")
答案 4 :(得分:3)
插入符号^
与文本的开头匹配。 [,]+
匹配任意数量的逗号。您需要的是忽略您要查找的项目之前和之后的所有内容:
^.*[,].*$
该点匹配除换行符之外的任何字符。 *
是重复(0 - 任何数字)。 $
与文字结尾匹配。
请注意,此处不需要修剪字符串。
答案 5 :(得分:2)
第一个断言整个字符串仅由逗号组成。第二个断言字符串由数字(除0
除外)和逗号组成,但不需要特定的字符串。你可以用这个:
.*,.*
请注意,使用^...$
时不需要matches
(因为它们是隐含的)。但是,像Marko或者yentup这样简单的indexOf
解决方案无论如何都会更好。
答案 6 :(得分:0)
不需要正则表达式:
textTestAr.trim().replace(',','.');
答案 7 :(得分:0)
public boolean hasComma(String string) {
if ( string.indexOf(",") > -1) {
return true;
}
return false;
}