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
方法。
答案 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