Como indicar o final da linha?

8 respostas
L

Bom preciso indicar quanto for final de linha, to usando == ‘\n’ mas nao ta funcionando, alguem pode me da um help de como indicar isso?
vlw

8 Respostas

R

Como voce esta fazendo? (aka, qual o codigo que voce esta usando e que nao funciona?)

Rafael

_

Não compare strings utilizando ==. Utilize o método String.equals( anotherString );

O porquê você encontra aqui:
http://www.guj.com.br/java.artigo.103.1.guj

L

mas eu to referenciando um Char…ja deixo de ser string…pq to pegando ele com o charAt(i);
e queria saber se esse char é um final de linha…
mas nao ta funcionando com ‘\n’

for ( int i=0;i<linha.length() ; i++) {
letra = linha.charAt(i);

if (letra == ';' || letra == ' ' || letra == '\n' || letra == '(' || letra == ')')
                    analisa = true;
                else
                    aux = aux + letra;
                
                if (analisa == true && aux != "") {
                    System.out.println(aux + " -> " + analisaToken(aux));
                    aux = "";
                    analisa = false;
                }
                
            }</blockquote>
_

Bom, aqui funcionou.

De onde e como você está pegando o texto?

T

Bom, se ele estiver puxando as linhas com BufferedReader.readLine, então o caracter de fim de linha já foi “engolido” pela rotina.

readLine

public String readLine()
throws IOException

Read a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.

Returns:
    A String containing the contents of the line, <b>not including any line-termination characters</b>, or null if the end of the stream has been reached
L

LIPE:
Bom, aqui funcionou.

De onde e como você está pegando o texto?


de um arquivo txt que ta localizado no c:

L

thingol:
Bom, se ele estiver puxando as linhas com BufferedReader.readLine, então o caracter de fim de linha já foi “engolido” pela rotina.


To usando readline sim…alguma sujestão?

T

O problema de saber quando é final de linha já foi resolvido quando você usou BufferedReader.readLine, já que ele lê uma linha de cada vez. Ele é que acha o tal final da linha.

(A menos que você esteja processando texto corrido em português, por exemplo, e você quisesse saber quando é final de parágrafo, que é um bicho diferente e que normalmente é tratado usando-se BreakIterator.)

Você só precisaria saber quando é final de linha se você estivesse lendo um byte ou um caracter de cada vez. Se fosse um byte de cada vez, existe o caso ‘\n’ sozinho (arquivo Unix), ‘\r’ + ‘\n’ (Arquivo Windows) e ‘\r’ sozinho (antigos arquivos texto do Mac). Se for um caracter, você precisa ver se o BufferedReader já não faz isso para você (esconder as diferenças de terminador de linha entre diversos tipos de arquivos).

O exemplo abaixo, usando BreakIterator, separa as palavras de um texto corrido em português (veja a documentação de getWordInstance).

import java.io.*;
import java.text.*;

class BreakIteratorTest {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader (new FileReader (args[0]));
        String line;
        BreakIterator bi = BreakIterator.getWordInstance();
        String word;
        while ((line = br.readLine()) != null) {
            bi.setText (line);
            int start = bi.first();
            for (int end = bi.next(); end != BreakIterator.DONE; start = end, end = bi.next()) {
                word = line.substring (start, end).trim();
                if (word.length() > 0) {
                    System .out .println ("[" + word + "]");
                }
            }
        }
        br.close();
    }
}
Criado 1 de maio de 2005
Ultima resposta 2 de mai. de 2005
Respostas 8
Participantes 4