How to make a program in java that tells you which positions are ahead and behind a word

Asked

Viewed 136 times

-1

This method tells how many words you have in a sentence:

public static int pesquisaPalavra(String palavra) {
    String frase = "Deus é bom o tempo todo, o tempo todo Deus é bom";
    String[] arrayString = frase.split(" ");

    int cont = 0;

    for (int i = 0; i < arrayString.length; i++) {

        if (arrayString[i].equals(palavra)) {
            cont++;
        }

    }

    return cont;

}

I want him to tell you how many positions there are ahead and behind the word found.

Call of the metodo in the main:

public static void main(String ars[]) {
    System.out.println(pesquisaPalavra("Deus"));
}
  • Positions you say would be the amount of characters before and after the word?

  • 2

    And what have you done about it? What is your specific doubt (as opposed to being general and want people to solve everything about it for you)?

1 answer

0

From what I understand you want to know the positions of the words that are in that array:

String[] arrayString = frase.split(" ");

I made a very simple example with one of the ways you can do it:

public static void main(String[] args) {
    String frase = "Deus é bom o tempo todo, o tempo todo Deus é bom";

    System.out.println("Total de palavras encontradas: " + getQtdPalavras(frase, "Deus"));
}

public static int getQtdPalavras(String frase, String palavraPesquisada) {
    String[] palavras = frase.split(" ");

    int cont = 0;

    for (int i = 0; i < palavras.length; i++) {

        if (palavras[i].equals(palavraPesquisada)) {
            System.out.println("Palavara >> " + palavraPesquisada + " << na posição >> " + i + " <<");
            System.out.println(posicoesAntes(i));
            System.out.println(posicoesDepois(palavras.length, i));
            System.out.println("\n");
            cont++;
        }

    }

    return cont;
}

public static String posicoesAntes(int posicaoAtual) {
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < posicaoAtual; i++) {
        sb.append(i).append(" ");
    }

    if ("".equals(sb.toString())) {
        sb.append("Não existem posições antes do item na posição ").append(posicaoAtual);
    }

    return "Posições antes: " + sb.toString();
}

public static String posicoesDepois(int length, int posicaoAtual) {
    StringBuilder sb = new StringBuilder();

    for (int i = (posicaoAtual + 1); i < length; i++) {
        sb.append(i).append(" ");
    }

    if ("".equals(sb.toString())) {
        sb.append("Não existem posições depois do item na posição ").append(posicaoAtual);
    }

    return "Posições depois: " + sb.toString();
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.