Как выводить только слова, начинающиеся с "b" из массива - PullRequest
0 голосов
/ 25 апреля 2019

Я создал программу, которая позволяет пользователю вводить 5 слов.Эти слова хранятся в строковом массиве.Когда пользователь заканчивает работу, отображается количество раз, когда слово, начинающееся с буквы «B», было введено в нижнем или верхнем регистре.Теперь я также должен переформулировать слова B.

Итак, этот код, который у меня есть, определяет, сколько введенных слов начинается с "b"

int fromIndex = 0;
    int count = 0;
    String words[] = new String [5];

    for (int x = 0 ; x <= words.length - 1 ; x = x + 1)
    {
        System.out.print ("Please enter a word: ");
        words [x] = kbi.readLine ();
        fromIndex = 0;
        words [x] = words [x].toLowerCase ();


        fromIndex = words [x].indexOf ("b", fromIndex);
        if (fromIndex == 0) // STARTS WITH B
        {
            count++;

        }

    }

    System.out.println ("You entered " + count + " 'B' words and they were: ");

Iдумал, что я мог бы использовать оператор if, чтобы напечатать слова b.Например:

if (words.charAt(0) == "b")
{
    System.out.println (words);
} 

, но на самом деле это не сработало, и я не думал, что так будет, я как бы теряюсь в том, что делать.

Iнадеюсь, я смогу получить некоторую помощь по этому вопросу, спасибо заранее.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Это потому, что charAt возвращает char вместо String, поэтому вам придется изменить сравнение:

if (words.charAt(0) == 'b')

Другая возможность - использовать регулярное выражение "b.*" или даже проще -String поставляется с startsWith методом, так что вы можете просто сделать это:

if (words.startsWith("b"))
0 голосов
/ 25 апреля 2019

в ваших кодовых словах не является String (это массив String), поэтому у него нет метода charAt, который вы использовали выше.у вас есть 5 строк в вашем массиве слов, поэтому, если вы хотите записать все строки в вашем массиве, которые начинаются с символа 'b', вы должны перебрать весь массив и вывести все, что начинается с 'b', например:

for(String str : words){
    if (str.charAt(0) == 'b'){
            System.out.println(str);
}

несколько советов: в Java 7 String есть метод метод с использованием, который вы можете использовать.если вы используете Java 6, проверьте, есть ли он тоже:

for(String str : words){
        if (str.startsWith("b", 0)){
            System.out.println(str);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...