Печать символов из массива символов - PullRequest
2 голосов
/ 18 марта 2012

Я должен решить небольшую проблему: для данного массива символов:

char[] lista = {'a', '2', '?', 'd', '!', 'S', '3', 'D', 'k'}; 

Я должен:

  1. Печатать только гласные;
  2. Печать только согласных;
  3. Распечатать цифры и;
  4. Распечатайте остальные символы.

У меня проблемы с 4.

Пока мой код:

public class Teste {

    public static void main(String[] args) {
    char [] lista = {'a', '2', '?', 'd', '!', 'S', '3', 'D', 'k'};
    char [] vogal = {'a', 'e', 'i', 'o','u','A','E','I','O','U'};
    char [] numbers = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
    char [] leters = {'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};
    char [] symbols = {'a', 'e', 'i', 'o','u','A','E','I','O','U','1', '2', '3', '4', '5', '6', '7', '8', '9', '0','b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z','B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z'};

    for (char j=0; j<lista.length ; j++)
    for (char i=0; i<vogal.length ; i++ ){
    if ( vogal [i] == lista [j] )
    System.out.println( "the vowels are: " + vogal [i] );
    }

    for (char j=0; j<lista.length ; j++)
    for (char x=0; x<numbers.length ; x++ ) {    
    if ( numbers [x] == lista [j] )
        System.out.println( "the numbers are: " + numbers [x] );       
    }

    for (char j=0; j<lista.length ; j++)
    for (char y=0; y<leters.length ; y++ ) {    
    if ( leters [y] == lista [j] )
        System.out.println( "the leters are: " + leters [y] );       
    }
        //my main problem is here 
    for (char j=0; j<lista.length ; j++)
    for (char z=0; z<symbols.length ; z++ ){    
    if (symbols [z] != lista [j])
         System.out.println( "the symbols are: " + lista [j]); 
}
 }
    }

Есть предложения о том, как печатать символы? Спасибо.

Ответы [ 4 ]

3 голосов
/ 18 марта 2012

значение, обратное к

  • , печатается, если хотя бы один в наборе ссылок (например, символы) соответствует

НЕ

  • printесли хотя бы один в наборе ссылок НЕ соответствует

, но

  • выведите, если NONE в наборе ссылок совпадает.

В другомсловами, вы должны разорвать внутренний цикл над z, как только lista[j] будет равен symbols[z], и вывести его только как символ, если вы не нашли совпадений в symbols.

(I 'я не предоставляю здесь явный код, так как это домашняя работа)

2 голосов
/ 18 марта 2012

Если под «символами» вы подразумеваете «не цифры или буквы»: вы можете проверить, не является ли символ цифрой или буквой, - и распечатать его, если это не один из них.

Имейте boolean flag [инициализированный на true], итерируя по letters и numbers, и установите его на false, если вы найдете совпадение с одним из них.

Если в конце итерации оно все еще равно true - это символ.

Я знаю, что это домашнее задание, поэтому вам, возможно, не разрешат - но если вы можете использовать HashSet<Character> - это, вероятно, упростит вам жизнь.

1 голос
/ 18 марта 2012

Вам может быть проще иметь дело со строкой набора символов.

String list = "a2?d!S3Dk";
String vowel = "aeiouAEIOU";

for(char ch : list.toCharArray()) {
   if (Character.isDigit(ch))
      System.out.print(ch + " is a digit");
   else if (Character.isLetter(ch))
      System.out.print(ch + " is a letter");
   else
      System.out.print(ch + " is a symbol");

   if (vowel.indexOf(ch) >= 0)
      System.out.print(" and a vowel.");
  System.out.println();
}

печать

a is a letter and a vowel.
2 is a digit
? is a symbol
d is a letter
! is a symbol
S is a letter
3 is a digit
D is a letter
k is a letter
1 голос
/ 18 марта 2012

Вы можете упростить циклы for.Вместо этого вы можете иметь строку с необходимыми символами, а затем вы можете проверить, содержится ли данный символ в строке.Также вы можете использовать класс Character, чтобы проверить, представляет ли символ букву / цифру и т. Д.* Здесь у вас должен быть логический флаг, чтобы проверить, содержится ли значение в массиве no_symbols.

...