2

我仍在使用 Java 进行项目,想问是否有人可以帮助我?

我在问我是否可以用“startsWith”检查一个包含多个字母的字符串?

喜欢:

 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!");

有什么解决办法吗?

4

8 回答 8

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

如果你想避免可能的语言环境问题,你可以给出两个范围,一个是小写,一个是大写:

char first = str.charAt(0);
if ((first >= 'a' && first <= 'd')
    || (first >= 'A' && first <= 'D'))
{
    // etc.
}
于 2014-02-13T14:54:56.823 回答
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"});
于 2014-02-13T14:55:43.810 回答
2

做到这一点的最好方法

str.matches("^[A-Da-d].+");
于 2014-02-13T15:00:29.197 回答
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()) {
...
于 2014-02-13T14:59:32.937 回答
2

试试这个代码:

String str = "ABCDEF";
if(str.matches("(a|A|b|B|c|C|d|D).*")) {
   ...
};
于 2014-02-13T15:01:35.677 回答
1

做这样的事情:

if (Alpha.startsWith("a") || Alpha.startsWith("A") || // and so on
于 2014-02-13T14:54:25.853 回答
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));
    }
于 2014-02-13T15:00:25.733 回答
0

你可以这样做:

    String str = "Alpha";
    String[] tar = "aAbBcCdD".split("");
    for(String s: tar) {
        if(str.startsWith(s)){
        ...your own logic
        }
    }
于 2014-02-13T15:05:22.750 回答