检查字符串数组的第一个字符

时间:2013-11-18 22:28:04

标签: java

我正在尝试创建一个方法,它将扫描用户输入数组的第一个字符,看看它是否是元音,但我有几个问题。这是我到目前为止的代码:

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();
    }

 }
  1. 忽略数组大小5.如何让用户可以添加任意数量的单词?我应该添加“当你完成时输入q”和while(j!='q'); ?我该怎么做数组大小?

  2. 这是否可以检查输入的每个数组的第一个字符:

  3. 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'))

    提前致谢

5 个答案:

答案 0 :(得分:1)

  1. 使用ArrayList
  2. 试试吧。另请考虑使用startsWith()

答案 1 :(得分:1)

  1. 简单的答案是使用任何List类;例如ArrayListLinkedList

  2. 提示:

    • 大写字母怎么样?
    • 带重音的字符怎么样?
    • 如果您打算使用这样的复杂表达式,请考虑使用临时变量

答案 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))