Подсчет indexOf символов из строковой переменной - PullRequest
0 голосов
/ 07 октября 2018

Я сейчас работаю над упражнением на Java.Я пытаюсь подсчитать количество экземпляров символа в переменной String, которая вводится с помощью JOptionPane и считается с помощью indexOf.У меня это пока что, но это не работает, так как счетчик возвращается с неправильным количеством букв этого типа символов при тестировании.

String input_text;     
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+input_text.indexOf('e'));

Затем пользователю нужно угадать правильное количество букв встрока, которую они написали.Я пробовал разные подходы для этого, но я застрял.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

спасибо за все комментарии здесь, мне удалось решить цикл символов следующим образом

public static void main(String[] args) {
  String s1="this is a sentence";
    char ch=s1.charAt(s1.indexOf('e'));
    int count = 0; 
    for(int i=0;i<s1.length();i++) {
        if(s1.charAt(i)=='e'){
            count++;
        }
    }
    System.out.println("Total count of e:=="+count);
}

}

Теперь я попытаюсь добавитькомпоненты JOptionPane: -)

0 голосов
/ 07 октября 2018

Функция String indexOf не будет работать здесь в качестве решения вашей проблемы, поскольку она предназначена для того, чтобы предоставить вам индекс первого вхождения требуемой подстроки (в данном случае конкретного символа).

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

String input_text;     
input_text = JOptionPane.showInputDialog("Write in some text");
System.out.println("Index of e in input_text: "+ getMatchCount(input_text, 'e'));

int getMatchCount(String input, char charToMatch) {
    int count = 0;
    for(int i = 0; i < input.length(); i++) {
        if(input.charAt(i) == charToMatch) {
            count++;
        }
    }
    return count;
} 

Вы также можете использовать Apache Commons StringUtils ' countMatches *Функция 1009 * напрямую.

Более того, если вы намереваетесь найти количество нескольких (разных) символов во входной строке, вы можете создать карту количества вхождений для каждого из символов, присутствующих во входной строке,так что вам не нужно будет повторять всю строку снова и снова, когда вас попросят подсчитать количество совпадений для другого символа.

...