Como encontrar a média de palavras usando os caracteres da cadeia JTextArea introduzido

Kiana:

Estou escrevendo um programa para uma atribuição usando JTextArea para que o usuário manualmente texto de entrada, em seguida, I / o programa calcula as estatísticas simples. O problema que estou tendo é quando eu estou calculando a duração média de cada palavra digitada, não calcular corretamente (ou seja: palavras: 2, personagens: 6, comprimento médio: 3, mas meu programa atualmente diz 3.5).

Eu tentei (duplo) e (float) e nada na frente (contagem ++) / words.length para ver se era erros de arredondamento do programa e que não afeta a saída de todo.

Eu também pensei que poderia ser porque é contar os espaços '' assim que eu encontrei em um trecho de código que exclui o espaço na contagem dos caracteres da string digitada. @ https://www.quora.com/How-do-I-count-characters-in-a-string-in-Java-without-using-charcount

Ainda sou muito novo para Java, e ajuda seria apreciada! Sinto-me como se fosse um simples resolver, apenas algo que eu não estou vendo ainda. Eu tenho incluir a parte do código que se refere a este, e tudo não incluído está me criar o campo de texto, quadro, e botões, etc ...

public void actionPerformed(ActionEvent event){

        String parsedString = inputText.getText();
        String delims = "[1234567890.,?!()*\\s]+";
        String words[]=parsedString.split(delims);

        char [] ch = parsedString.toCharArray();
        int count=0;
        for (int i = 0; i < ch.length; i++) {
            if (ch[i]!=' '){
            count++;
            }
        }

        wordCounter.setText("Words inputed: " + words.length);
        wordCharacters.setText("Characters:" + count++ );
        wordAverage.setText("Average Length: " + (float) (count++)/words.length ); 

    }
Anuradha:

Você precisa cortar o parsedStringantes de usá-lo no código. Ele remove esquerda e à direita espaços na string.

Aqui wordCharacters.setText("Characters:" + count++ );e wordAverage.setText("Average Length: " + (float) (count++)/words.length );aqui count++é desnecessário porque incrementa a contagem calculada a partir de loop. É a questão em seu código. Verifique resposta abaixo.

public void actionPerformed(ActionEvent event) {
    String parsedString = inputText.getText().trim();
    String delims = "[1234567890.,?!()*\\s]+";
    String[] words = parsedString.split(delims);

    char[] ch = parsedString.toCharArray();
    int count = 0;
    for (int i = 0; i < ch.length; i++) {
        if (ch[i] != ' ') {
            count++;
        }
    }
    wordCounter.setText("Words inputed: " + words.length);
    wordCharacters.setText("Characters:" + count);
    wordAverage.setText("Average Length: " + (float) (count) / words.length);
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=347860&siteId=1
Recomendado
Clasificación