Ler um arquivo e identificar um espaço em branco

: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:

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

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

:razz:  Com Carinho   :lol: 

Sheyla_DF :wink:

[quote=“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:[/quote]

String.indexOf(" ")
String.indexOf(’\t’)
String.indexOf(’\n’)
String.indexOf(’\r’)

[quote=“mavi”][quote=“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:[/quote]

String.indexOf(" ")
String.indexOf(’\t’)
String.indexOf(’\n’)
String.indexOf(’\r’)[/quote]

mais pratico mavi ! hehe boa

: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:

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?

:???: 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:

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

[code]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));

}
}

[/code]
Num sei como tá seu programa, mas acho que talvez assim possa funcionar.

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

: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: