2013-11-18 2 views
1

Я пытаюсь создать метод, который будет сканировать первый символ введенного пользователем массива и посмотреть, является ли он гласным, но у меня есть несколько вопросов. Вот код, который я до сих пор:Проверка первого символа строкового массива

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. Как бы я сделать это возможным для пользователя, чтобы добавить столько слов, сколько они хотели бы? Должен ли я добавить «Enter q, когда вы закончите», и while (j! = 'Q'); ? Что я должен сделать размер массива?

  2. ли эта работа, чтобы проверить первый символ каждого массива вошли:

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

использовать список, а не массив. Размер списка является динамическим. Вы могли бы написать чек для гласного, как вы предложили. Регулярное выражение, вероятно, было бы более изящным, хотя, поскольку вы могли бы объединить все гласные в одном утверждении, но ваше решение отлично подходит, если эксперимент yu. –

+0

Что касается второй части вашего вопроса: попробуйте ее и посмотрите сами. –

ответ

1
  1. Используйте ArrayList.
  2. Попробуйте. Также рассмотрите возможность использования startsWith().
0

1: Для массива используйте ArrayList, он имеет динамический размер.

List<String> input = new ArrayList<>(); 

Чтобы добавить что-то к нему:

input.add(scan.next()); 

2: Да, это должно быть достаточно.

0
List<Character> vowels = Arrays.asList('a','e','i','o','u'); 
if(vowels.contains(input[j].charAt(0))) {...} 
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)) 
+0

Im получение не может найти ошибку символа в «списке». Есть идеи? – user2943817

+0

Вы импортировали пакет 'java.util. *'? – Jack

1
  1. простой ANS wer - использовать любой класс List; например ArrayList или LinkedList.

  2. Подсказки:

    • что насчет прописные буквы?
    • Как насчет персонажей с акцентами?
    • , если вы собираетесь использовать сложное выражение вроде этого, рассмотреть возможность использования временной переменной
Смежные вопросы