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!
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.
2 curtidas
String[] array = “teste0.teste1.teste2.teste3.teste4”.split("\\.");
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 
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);
}
}
}

1 curtida
String[] palavras = texto.split(Pattern.quote("."));
1 curtida
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.
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 ?
tira a \\.
é só “.”
String[] palavras= texto.split(Pattern.quote("."));
for(int i = 0; i < palavras.length; i++){
System.out.println(palavras[i]);
}
if (texto != null) {
String[] palavras = texto.split("\\.");
for (String palavra : palavras) {
System.out.println(palavra);
}
1 curtida
ISSO!!! Agora que lembrei! STRING É IMUTÁVEL!
Porem ele me apresentou o endereçamento de memória…
Consegui galera! Só falta escrever em um arquivo externo e fazer esse arquivo de saída!
Java não expõe o endereço de memória de seus objetos.
Resolvido. Obrigado à todos !