Java / startsWith多个字母?

时间:2014-02-13 14:52:54

标签: java if-statement startswith

我还在研究Java项目,想问一下有人可以帮助我吗?

我问我是否可以使用“startsWith”检查带有多个Letter的字符串?

像:

 if (string Alpha.startsWith("a"||"A"||"b"||"B"||"c"||"C"||"d"||"D")){
                        System.out.println("Wrong!");
                        System.out.println("\n");
                    }
                    else{
                        System.out.println("Wrong Key!");

任何解决方案?

8 个答案:

答案 0 :(得分:5)

char first = Character.toLowerCase(str.charAt(0));
if (first >= 'a' && first <= 'd')
{
    // etc.
}

如果你想避免可能的locale issues,你可以给出两个范围,一个用于小写,一个用于大写:

char first = str.charAt(0);
if ((first >= 'a' && first <= 'd')
    || (first >= 'A' && first <= 'D'))
{
    // etc.
}

答案 1 :(得分:3)

我会把它放在新方法中:

private boolean myStartsWith(String... args) {
   for(String str : args) {
       if(args.startsWith(str) {
          return true;
       }
   }
   return false;
}

然后使用它:

str.myStartsWith(new String[]{"a","b","c"});

答案 2 :(得分:2)

正如其他人所提到的,显然应该使用正则表达式:

java.util.regex.Pattern p = java.util.regex.Pattern.compile("^[a-cA-C]");
java.util.regex.Matcher m = p.matcher(alpha);  //
if (m.matches()) {
...

答案 3 :(得分:2)

最好的方法

str.matches("^[A-Da-d].+");

答案 4 :(得分:2)

试试这段代码:

String str = "ABCDEF";
if(str.matches("(a|A|b|B|c|C|d|D).*")) {
   ...
};

答案 5 :(得分:1)

做这样的事情:

if (Alpha.startsWith("a") || Alpha.startsWith("A") || // and so on

答案 6 :(得分:0)

private static boolean startsWith(String value, String[] chars){
    for(String check:chars){
        if(value.indexOf(check) == 0 || value.indexOf(check.toUpperCase()) == 0){
            return true;
        }
    }
    return false;
} 

<强>用法

   public static void main(String[] args) {
        String val1 = "A string";
        String val2 = "a string";
        String val3 = "x string";
        String[] chars = {"a","b","c","d"};

        System.out.println(startsWith(val1,chars));
        System.out.println(startsWith(val2,chars));
        System.out.println(startsWith(val3,chars));
    }

答案 7 :(得分:0)

您可以这样做:

    String str = "Alpha";
    String[] tar = "aAbBcCdD".split("");
    for(String s: tar) {
        if(str.startsWith(s)){
        ...your own logic
        }
    }