Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como imprimir as palavras separadas com algum método que já faz isso

public class TestaSplit {
    public static void main(String[] args) {
        String frase = "Socorram-me, subi no ônibus em Marrocos";
        String[] textoSeparado = frase.split(" ");
        for (int i = textoSeparado.length - 1; i >= 0; i--) {
            if (i == 0) {
                System.out.print(textoSeparado[i]);
            } else {
                System.out.print(textoSeparado[i] + " ");
            }

        }
    }
}
4 respostas

Talvez eu não tenha entendido muito bem sua dúvida, mas para juntar os elementos de uma array em uma String, no java 8 é possível utilizar o método estático join, presente na class String. Seu código ficaria assim:

public class TestaSplit {

    public static void main(String[] args) {
        String frase = "Socorram-me, subi no ônibus em Marrocos";
        String[] textoSeparado = frase.split(" ");

        System.out.println(String.join(" ", textoSeparado));
    }
}

Em suma, está sendo passado para o 'join' o separador de união e os elementos a serem unidos, gerando o mesmo resultado do seu código.

Estou realizando um exercício do FJ-11, preciso manter a ordem inversa das palavras. Já consegui com o for e a suposta "gambiarra" da concatenção para separar as palavras com um espaço rsrs

O código que você enviou apenas volta para como já estava antes, mas agradeço.

solução!

Bem, nesse caso, você poderia utilizar o método estático reverse, da classe Collections, desde que converta seu array para uma List.

String frase = "Socorram-me, subi no ônibus em Marrocos";

List<String> textoSeparado = Arrays.asList(frase.split(" "));
Collections.reverse(textoSeparado);

System.out.println(String.join(" ", textoSeparado));

Agora, comparando os dois algoritmos, o seu parece mais performático, já que não exige conversão de array para List (o que não parece tão grave), mas talvez a legibilidade do meu compense.

Legal, muito obrigado!