Использование цикла for для проверки массива - PullRequest
1 голос
/ 11 июня 2011

Я пытаюсь использовать цикл for, чтобы проверить каждый символ в массиве и напечатать символ, его положение в массиве и тип его символа (гласный, согласный и т. Д.). У меня есть это до сих пор:

char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};

         System.out.print("\nMy name is: ");

            for(int index=0; index < myName.length ; index++)
            System.out.print(myName[index]);

            for(char c : myName) {
            if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
            {
                System.out.println("The character located at position is a vowel.");
            }
            else if (c == 'j' || c == 'h' || c == 'n' || c == 'd')
            {
                System.out.println("The character located at position is a consonant.");
            }
            else if (c == ' ')
            {
                System.out.println("The character located at position is a space.");
            }

Как напечатать местоположение символа (т. Е. «Символ x, расположенный в позиции x, является гласным.»)

Ответы [ 3 ]

3 голосов
/ 11 июня 2011

Вы на правильном пути.Ваш цикл в порядке, но попробуйте синтаксис foreach, если на самом деле не нужен индекс, например:

 char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};

 System.out.print("\nMy name is: ");

 for(char c : myName) {
     System.out.print(c); 
 }

Теперь добавьте немного логики:

 int i = 0;
 for(char c : myName) {
     i++;
     // Is the char a vowel?
     if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
         // do something - eg print in uppercase
         System.out.print(Character.toUpperCase(c) + " at position " + i);
     } else {
         // do something else - eg print in lowercase
         System.out.print(Character.toLowerCase(c) + " at position " + i);
     }
 }

Вы должны понять, что вы хотите сделать здесь.Теперь сделайте это:)

РЕДАКТИРОВАНИЕ: Чтобы показать использование позиции, которая немного неуклюжа, но все же меньше кода, чем стандарт для цикла

0 голосов
/ 11 июня 2011
     char[] myName = new char[] {'J', 'o', 'h', 'n', ' ', 'D', 'o', 'e'};

     System.out.print("\nMy name is: ");

        for(int index=0; index < myName.length ; index++)
        char c = myname[index];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
        {
            System.out.println("The character " + c + "located at position " + index + " is a vowel.");
        }
    ... }
0 голосов
/ 11 июня 2011

Советы:

  • Вы должны использовать тип цикла for, который вы используете в данный момент. Переменная индекса значения будет полезна в вашем выводе.

  • Класс Character имеет ряд методов для классификации символов и для преобразования из верхнего регистра в нижний регистр и наоборот.

  • Вы также можете использовать == для проверки символов ...

  • Вы также можете использовать оператор switch для различения букв различного типа, а для остальных - ветку default.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...