我正在尝试创建一个方法,它将扫描用户输入数组的第一个字符,看看它是否是元音,但我有几个问题。这是我到目前为止的代码:
public static void main (String args[])
{
String[] input= new String [5];
Scanner scan=new Scanner(System.in);
System.out.println("Please enter your words...");
for(int j=0;j<5;j++)
{
a[j]=scan.next();
}
}
忽略数组大小5.如何让用户可以添加任意数量的单词?我应该添加“当你完成时输入q”和while(j!='q'); ?我该怎么做数组大小?
这是否可以检查输入的每个数组的第一个字符:
if ((input[j].charAt(0)=='a')||(input[j].charAt(0)=='e')||(input[j].charAt(0)=='i')|| (input[j].charAt(0)=='o')||(input[j].charAt(0)=='u'))
提前致谢
答案 0 :(得分:1)
ArrayList
。startsWith()
。答案 1 :(得分:1)
简单的答案是使用任何List
类;例如ArrayList
或LinkedList
。
提示:
答案 2 :(得分:0)
1:对于数组,使用ArrayList,它具有动态大小。
List<String> input = new ArrayList<>();
要添加内容:
input.add(scan.next());
2:是的,这应该足够了。
答案 3 :(得分:0)
List<Character> vowels = Arrays.asList('a','e','i','o','u');
if(vowels.contains(input[j].charAt(0))) {...}
答案 4 :(得分:0)
如果您不知道先前输入了多少字符串,那么解决方案是使用动态数据结构,如列表:
List<String> input = new ArrayList<String>();
input.add(scan.next());
检查一个字母是否是一个元音是一个典型的事情,可以用效用函数解决,以保持行为分离:
boolean isVowel(char c) {
switch (Character.toLowercase(c)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return true;
default: return false;
}
}
boolean startsWithVowel = isVowel(input.get(0).charAt(0))