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
Como indicar o final da linha?
8 Respostas
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
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 (; i++) {int i=0;i<linha.length()
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?
Bom, se ele estiver puxando as linhas com BufferedReader.readLine, então o caracter de fim de linha já foi “engolido” pela rotina.
readLinepublic 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
Bom, aqui funcionou.De onde e como você está pegando o texto?
de um arquivo txt que ta localizado no c:
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?
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();
}
}