Dividir linhas por (.) ponto

13 respostas
L.Lovato

Boa tarde galera!

Eu preciso criar um arquivo de saída que divida as frases em linhas, considerando “.” (pontos) que existem. Por exemplo, se essa frase tem 3 pontos, dividir em 3 linhas.
Sei que preciso usar o split(), mas não estou sabendo manipular.

Obrigado!

13 Respostas

darlan_machado

O split aceita uma regex como entrada. Por isso, você deve estar tendo problemas, por estar tentando fazer algo como

.split(".");

Troque o que está sendo passado ao método split por

.split("\\.");

Isso deve resolver.

LuanFroehlich

String[] array = “teste0.teste1.teste2.teste3.teste4”.split("\\.");

L.Lovato

Obrigado pela ajuda Darlan, porem ele não pulou linha.
Esse é o código fonte:

public class Saida {

public static void main(String[] args) {
	try {
		FileInputStream ar = new FileInputStream("arq.txt");
		InputStreamReader reader = new InputStreamReader(ar);
		BufferedReader buff = new BufferedReader(reader);
		
		String texto;
		
	do {
		texto = buff.readLine();
		if(texto != null){
			String[] palavras = texto.split("\\.");
			System.out.println(texto);
		}
	} while (texto != null);
		
	}
	catch(Exception erro) {
		System.out.println("Erro ao escrever.");
	}

}
}

Preciso apontar um arquivo (arq.txt) e gerar outro aquivo de saida com aquelas regras do “.”, mas mesmo assim não deu certo :sleepy:

darlan_machado

Qual o conteúdo do arquivo?
A classe que fiz para testar é esta e, ao executar, o resultado foi o esperado.

public class Linhas {
	public static void main(String[] args) {
		String txt = "Este. Texto. Deve. Ser. Dividido. Em. Linhas";
		String[] txtDiv = txt.split("\\.");
		for(String s : txtDiv) {
			System.out.println(s);
		}
	}
}

image

B

String[] palavras = texto.split(Pattern.quote("."));

L.Lovato

O conteúdo do arquivo de saída é o mesmo conteudo que está em um txt chamado “arq.txt”.
Talvez eu não tenha me expressado corretamente.
Existe um texto que se chama “arq.txt” na pasta do meu projeto. Eu preciso pegar tudo que está escrito dentro dele e criar OUTRO arquivo, porem com aquela regra de que cada “.” (ponto) ele pule uma linha.

L.Lovato

Dei um system e não pulou, devo estar fazendo algo de errado, olha…

if(texto != null){
				String[] palavras = texto.split(Pattern.quote("\\."));
				System.out.println(texto);

Certo ?

B

tira a \\. é só “.”

String[] palavras= texto.split(Pattern.quote("."));
        
        for(int i = 0; i < palavras.length; i++){
            System.out.println(palavras[i]);
        }
staroski
if (texto != null) {
    String[] palavras = texto.split("\\.");
    for (String palavra : palavras) {
        System.out.println(palavra);
    }
L.Lovato

ISSO!!! Agora que lembrei! STRING É IMUTÁVEL!
Porem ele me apresentou o endereçamento de memória…

L.Lovato

Consegui galera! Só falta escrever em um arquivo externo e fazer esse arquivo de saída!

staroski

Java não expõe o endereço de memória de seus objetos.

L.Lovato

Resolvido. Obrigado à todos !

Criado 11 de maio de 2018
Ultima resposta 12 de mai. de 2018
Respostas 13
Participantes 5