Java - 如何查看字符是否与多个字符匹配?

时间:2017-06-12 03:45:02

标签: java arrays char stringbuilder

Java代码

public static String toPaddedHex(int i) {
    return String.format("0x%04X", i);
}

//print

System.out.println(toPaddedHex(1));  // 0x0001

我试图这样做,以便如果用户输入单词的第一个字母是元音,他/她必须重新输入一个单词。 StringBuilder不提供StringBuilder sb = new StringBuilder(""); char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; while (true) { if(!(sb.charAt(0).matches(vowels))) <---- Need help { sb.append(scan.nextLine()); break; } else { sb.delete(0, sb.length()-1); sb.append(scan.nextLine()); } } 方法,所以我需要一个替代方法来检查这个。此外,我不能使用字符串,因为我在此代码中稍后也使用了matches方法。

7 个答案:

答案 0 :(得分:2)

您也可以使用BitSet

static BitSet vowels = new BitSet();

static {
    vowels.set('a');
    vowels.set('e');
    vowels.set('i');
    vowels.set('o');
    vowels.set('u');
}

然后当你想检查时,在方法中做

if (vowels.get(someChar)) {
}

答案 1 :(得分:2)

使用String的内置indexOf()方法:

String vowels = "aeiou";

if (vowels.indexOf(sb.charAt(0)) == -1/*not found*/) {

正如javadoc所说:

  

返回此对象表示的字符序列中第一次出现的字符的索引,如果字符未出现,则返回 -1

答案 2 :(得分:0)

最好的方式是使用正则表达式:

Matcher matcher = Pattern.compile("[aeiou]").matcher(str);

答案 3 :(得分:0)

另一种选择是使用集合

SELECT COUNT (*) FROM TABLE_NAME

答案 4 :(得分:0)

试试这个

Scanner sc = new Scanner(System.in);
    int flag=0;
    char[] a = {'a','e','i','o','u'};
    System.out.println("Enter a word");
     String word=sc.next();
    for(int i=0;i<5;i++)
    {
        if(word.charAt(0) == a[i]){
            System.out.println("Starts with a vowel");
            flag=1;
        }
    }
    if(flag != 1)
    {
        System.out.println("Word Doesnt start with vowel");
    }

答案 5 :(得分:0)

又一种方式......

 extracted_by_chunking = ['I went to the store.', 'etc', 'etc']

答案 6 :(得分:0)

您可以使用RegEx

StringBuilder sb = new StringBuilder("");

String vowelsRegEx = "[aeiou].*";
/* [aeiou] = First character: a or e or i or o or u
 * .* = All characters after the first: doesn't matter
 */

if(!sb.toString().matches(vowelsRegEx)) {
    sb.append(scan.nextLine());
    break;
}
else {
    sb.delete(0, sb.length()-1);
    sb.append(scan.nextLine());
}

如果您不熟悉正则表达式,可以在RegEx101上轻松测试RegEx-String

相关问题