2016-07-28 3 views
1

Я пытаюсь написать метод findChar(). Этот метод принимает в качестве параметров символ и массив строк, и он печатает все слова в массиве, которые содержат указанный символ параметра. , напримернайти символ в массиве

Test         Result 
String[] words = {"caravan", "car", "van", "bike", "scooter", "vehicle", "bicycle"}; 

findChar('v', words); Words containing the letter v : caravan van vehicle 
findChar('i', words); Words containing the letter i : bike vehicle bicycle 

я получил что-то вроде этого на данный момент это грубая идея, но не 100% уверен, что, как я еще неделю на изучение Java поэтому, пожалуйста, идти легко.

public static void findChar(Char character, String word) { 
    for(String word:words) { 
      // Check if it contains the character 
      if (word.contains(Character.toString(character))) { 
       wordsContainingCharacter.add(word); 
      } 

    if(.....size() > 0) { 
      System.out.println("Words containing the letter " + character + " : " + ....); 
     } else { 
      System.out.println("Character is not in any word"); 
     } 
    } 
} 
+0

так в чем вопрос? – Abubakkar

+0

Ваше решение выглядит отлично. Вы столкнулись с любой проблемой? –

+0

Этот код очень хорош, и так вы должны его написать, в чем смысл? – Furtiro

ответ

3

Это должно работать

public static void findChar(char character, String words[]) { 
    //ArrayList for putting the matched words 
    ArrayList<String> wordsContainingCharacter = new ArrayList<String>(); 
    for (String word : words) { 
     // Check if it contains the character 
     if (word.contains(Character.toString(character))) { 
      wordsContainingCharacter.add(word); 
     } 

    } 
    //2.check is to be put after the loop 
    if (wordsContainingCharacter.size() > 0) { 
     System.out.println("Words containing the letter " + character 
       + " : " + wordsContainingCharacter); 
    } else { 
     System.out.println("Character is not in any word"); 
    } 
} 

Logic без использования ArrayList

StringBuilder stringOfWords=new StringBuilder(); 
    for (String word : words) { 
     // Check if it contains the character 
     if (word.contains(Character.toString(character))) { 
      stringOfWords.append(word+" "); 
     } 

    } 
    //2.check is to be put after the loop 
    if (stringOfWords.length() > 0) { 
     System.out.println("Words containing the letter " + character 
       + " : " + stringOfWords); 
    } else { 
     System.out.println("Character is not in any word"); 
    } 
+0

есть ли способ обойтись без использования ArrayList Я не узнал, что до –

+0

Да вы можете использовать простую String –

+0

, как бы вы это сделали? –

Смежные вопросы