[RESOLVIDO]Ler StringBuilder

5 respostas
F

Seguinte tenho uma variavel do tipo StringBuilder e precisa percorrer ela linha por linha. O problema é q acredito eu a StringBuilder n foi feita para percorrer, então como eu posso fazer isto ?

Minha solução foi gravar o conteudo dela em um arquivo e depois ler, mas me parece q isto n é muito inteligente já q ira consumir um espaço ao meu ver desnecessario, pois sao 6000 arquivos e o arquivo q gravo sera sobrescrito 6000 vezes.

Alguem sabe um jeito de melhorar este processo.

Flw

5 Respostas

E
StringBuilder sb = new StringBuilder();
sb..........; // preencha sua StringBuilder
String[] linhas = sb.toString().split ("(\r\n|\n)", -1); 
// (\r\n|\n) é uma expressão regular que indica que uma linha termina com \r\n (Windows)
// ou somente \n  (Unix / Linux / MacOSX).
// No array "linhas" aqui estão as linhas desejadas. Basta percorrê-las com um "for".
// -1 indica que você também quer linhas vazias.
F

entanglement:
StringBuilder sb = new StringBuilder(); sb..........; // preencha sua StringBuilder String[] linhas = sb.toString().split ("(\r\n|\n)", -1); // (\r\n|\n) é uma expressão regular que indica que uma linha termina com \r\n (Windows) // ou somente \n (Unix / Linux / MacOSX). // No array "linhas" aqui estão as linhas desejadas. Basta percorrê-las com um "for". // -1 indica que você também quer linhas vazias.

ele poderia usar o

System.getProperty("line.separator");

dai não precisa se preocupar com o S.O.

T

Felagund:
entanglement:
StringBuilder sb = new StringBuilder(); sb..........; // preencha sua StringBuilder String[] linhas = sb.toString().split ("(\r\n|\n)", -1); // (\r\n|\n) é uma expressão regular que indica que uma linha termina com \r\n (Windows) // ou somente \n (Unix / Linux / MacOSX). // No array "linhas" aqui estão as linhas desejadas. Basta percorrê-las com um "for". // -1 indica que você também quer linhas vazias.

ele poderia usar o

System.getProperty("line.separator");

dai não precisa se preocupar com o S.O.

Mas não tem como saber em qual S.O. o arquivo foi gravado!! Essa propriedade geralmente se usa quando vai ser gravado um arquivo!

V

Felagund:
ele poderia usar o

System.getProperty("line.separator");

dai não precisa se preocupar com o S.O.

Isso só retorna o separador de linha do SO atual. Para realmente não se preocupar com separador, ele poderia usar o Scanner:

Scanner scan = new Scanner(sb.toString()); while (scan.hasNextLine()) { String linha = scan.nextLine(); fazQualquerCoisaComALinha(linha); }

F

Vlw galera, funcionou.

Criado 11 de outubro de 2010
Ultima resposta 11 de out. de 2010
Respostas 5
Participantes 5