如何检查以确保字符串可以包含的唯一特殊字符是逗号?
testString = "123,34565,222" //OK
testString = "123,123.123." //Fail
答案 0 :(得分:4)
基于@Simeon正则表达式的完整工作示例。这会重用一个Matcher
对象,如果经常进行检查,建议使用该对象。
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class OnlyLettersDigitsCommas {
//"": Dummy search string, to reuse matcher
private static final Matcher lettersCommasMtchr = Pattern.
compile("^[a-zA-Z0-9,]+$").matcher("");
public static final boolean isOnlyLettersDigitsCommas(String to_test) {
return lettersCommasMtchr.reset(to_test).matches();
}
public static final void main(String[] ignored) {
System.out.println(isOnlyLettersDigitsCommas("123,34565,222"));
System.out.println(isOnlyLettersDigitsCommas("123,123.123."));
}
}
输出:
[C:\java_code\]java OnlyLettersDigitsCommas
true
false
答案 1 :(得分:3)
您可以使用这样的快速String.contains
方法:
if ( testString.contains(".") {
// fails
}
但我会考虑使用Regex进行此类验证。
编辑:正如问题评论中所述:[a-zA-Z0-9,]
答案 2 :(得分:3)
也许是
if (!testString.matches("^[a-zA-Z0-9,]+$")) {
// throw an exception
}
检查?