Ler um arquivo e identificar um espaço em branco

10 respostas
S

:cry: Existe algum método que identifique um espaço em branco, um TAB ou um ENTER de um arquivo texto (.txt)?

Um Forte Abraço
:idea: Sheyla_DF :idea:

10 Respostas

E

oie blzinha???

tem sim

StringTokenizer

padrão de identificação e separação de tokens é um espaço em branco :wink:

confere na documentação

:arrow: http://java.sun.com/j2se/1.4.2/docs/api/index.html

ps.: se vc tem o livro java como programar 4ed da Deitel tem um capitulo soh de manipulação de Strings e tem como utilizar o StringTokenizer

ps2.: vc vai ler o arquivo.txt e carregar em uma string para poder manipular ele :wink:

[]'s
Erko Bridee

S

:wink: Muito obrigada, vou procurar ler este capítulo, se aparecer mais dúvidas volto a perguntar.

:razz:  Com Carinho   :lol:

Sheyla_DF :wink:

M

“Sheyla_DF”:
:cry: Existe algum método que identifique um espaço em branco, um TAB ou um ENTER de um arquivo texto (.txt)?

Um Forte Abraço
:idea: Sheyla_DF :idea:

String.indexOf(" ")

String.indexOf(’\t)

String.indexOf(’\n)

String.indexOf(’\r)
B

“mavi”:
“Sheyla_DF”:
:cry: Existe algum método que identifique um espaço em branco, um TAB ou um ENTER de um arquivo texto (.txt)?

Um Forte Abraço
:idea: Sheyla_DF :idea:

String.indexOf(" ")

String.indexOf(’\t)

String.indexOf(’\n)

String.indexOf(’\r)</blockquote>

mais pratico mavi ! hehe boa

S

:fucando: StringTokenizer separador = new StringTokenizer(teste.getConteudo(), “;\t\n\r”);

Eu criei o objeto (separador) da classe StringTokenizer, preciso verificar se o conteúdo dele é igual a ";". Tentei:

if (separador == “;”), dá erro na hora de compilar.
if (separador.equals(";")), compila, mas não funciona.

Alguém tem a solução
Um Forte Abraço - Sheyla_DF :roll:

R

opa…

o objeto separador é da classe StringTokenizer e não da classe String
qndo vc usa o separador.equals(";"); na verdade vc esta comparando com um objeto “;”… e se vc faz == “;” vc esta comparando com uma string, não dah certo, seria o mesmo que comparar um bola com um copo de agua…

faça o seguinte, separe a string em pedaços( ou tokens) com a classe StringTokenizer

por exemplo,

String pedaco separador.nextToken();

ai vc faz as comparações com o objeto pedaco
entendeu?

S

:???: Não sei o que está acontecendo com o meu programa. Ele compila, mas não roda direito, aparece um erro dentro do WHILE, a mesma instrução fora do comando de repetição funciona normalmente:

n1[x] = separador.nextToken();

Alguém sabe o que está acontecendo, preciso colocar alguma Excepção, como devo fazer?

totalLin.addActionListener( new ActionListener()
	{
		public void actionPerformed (ActionEvent e)
		{
		
   			StringTokenizer separador = new StringTokenizer(teste.getConteudo());
   			StringTokenizer pv = new StringTokenizer(teste.getConteudo(), ";");
   			
   			int linha= pv.countTokens();
   			System.out.println("total de linhas: "+(linha-1));
   			
   			int i = separador.countTokens(), x=0;
   			System.out.println("N: "+i);
   			
   			
   			String[] n1 = new String[300];
   			n1[x] = separador.nextToken();
   			System.out.println(n1[x]);
   			
   			
   			boolean bol = separador.hasMoreTokens();
   			
   			
   			while (bol)
   		
   			{
   				   				                            n1[x] = separador.nextToken();
   			            System.out.println(n1[x]);
   			            x++;
   			}
		  tfResultado.setText(String.valueOf(linha));	
		}
	});

Um Forte Abraço - Sheyla_DF :roll:

F

Vc passou um método actionPerformed como parêmetro pro addActionListener!!! Num cunheço essa forma...
poderia ser assim:

totalLin.addActionListener(this); 
totalLin.setActionCommand("exemplo");
public void actionPerformed(ActionEvent e)
	{		
		String Selecao = e.getActionCommand();
		if (Selecao.equals("exemplo"))
	{
            StringTokenizer separador = new StringTokenizer(teste.getConteudo()); 
            StringTokenizer pv = new StringTokenizer(teste.getConteudo(), ";"); 
             
            int linha= pv.countTokens(); 
            System.out.println("total de linhas: "+(linha-1)); 
             
            int i = separador.countTokens(), x=0; 
            System.out.println("N: "+i); 
             
             
            String[] n1 = new String[300]; 
            n1[x] = separador.nextToken(); 
            System.out.println(n1[x]); 
             
             
            boolean bol = separador.hasMoreTokens(); 
             
             
            while (bol) 
          
            { 
                        n1[x] = separador.nextToken(); 
                        System.out.println(n1[x]); 
                        x++; 
            } 
           tfResultado.setText(String.valueOf(linha));
}
}
Num sei como tá seu programa, mas acho que talvez assim possa funcionar.
V

use o String.split()

String[] pedacos = teste.getConteudo().split(";");
  for(int i = 0; i < pedacos.length; i++) {
    System.out.println("linha sem ; = "+pedacos[i]);
  }

evite usar o StringTokenizer, de acordo com a documentação seu uso será deprecado, mas se quiser usar use do seguinte modo:

StringTokenizer stok = new StringTokenizer(teste.getConteudo(),";");
  while(stok.hasMoreTokens()) {
    System.out.println("linha sem ; = "+stok.nextToken());
  }

bjinho Sheyla!! :razz:

Henrique Viecili

S

:cool: Felipe e Henrique, muito abrigada pelas dicas, vou fazer alguns teste e se surgir mais dúvidas espero poder contar com a ajuda de vocês…

Com Carinho - Sheyla_DF    :picando:
Criado 22 de setembro de 2004
Ultima resposta 1 de out. de 2004
Respostas 10
Participantes 7