Java检查该字符串只允许逗号作为特殊字符

时间:2014-04-02 13:41:55

标签: java

如何检查以确保字符串可以包含的唯一特殊字符是逗号?

testString = "123,34565,222"  //OK

testString =  "123,123.123." //Fail

3 个答案:

答案 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    
}

检查?

相关问题