Como usar o método split

6 respostas
nego_henry

Montei uma classe para ler cada linha de um arquivo, porém devo colocar algumas condições dependendo do caracter encontrado por linha. ex:

[menu]

exten => s,1,SetLanguage (br)

isso deverá ser separado assim

contex=menu
exten=s
priority=1
app=SetLanguage
arg=(br)

Ou seja: Quando na linha for encontrado o caracter “[” ele deverá escrever o que estiver na frente deste mesmo caracter até encontrar este “]”
e assim por diante que será as outras condições.

Alguem pode dar uma ajuda ai?

6 Respostas

ramilani12

Acho melhor vc usar a classe StringTokenizer , vai pulando em caracter em seguida linha em linha buscando os [ e ]

nego_henry

o problema é q nunca utilizei nenhuma destas 2 classes… nao sei como implementar no meu código…

ramilani12

Vc esta pegando esses dados em um arquivo?

fileTcs = new File(pathTCS);
			
            FileReader fr = new FileReader(fileTcs);
            BufferedReader br = new BufferedReader(fr);
            String linha = null;

            while ((linha = br.readLine()) != null)
            {
                StringTokenizer st = new StringTokenizer(linha);
                 while (st.hasMoreTokens()) 
                {
                	System.out.println(st.nextToken());                	
               }
             }
nego_henry
vou ti mandar meu código aqui da uma olhada como ficou:
import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
public class LeArquivos {

	/**este arquivo irá ler o arquivo em questão 
	 * e irá interpretar cada linha para depois apresentar 
	  na tela para o usuário*/
	
	public static void main(String[] args) {
		   Scanner sc;  
		   FileInputStream fi;  
		   File f;  
		   String temp;  
		     
		   try  
		   {  
		       f = new File("c:\arquivo.txt");  
		       fi = new FileInputStream(f);  
		       sc = new Scanner(fi);  
		  
		       while ( sc.hasNextLine() )  
		       {  
		           temp = sc.nextLine();  
		           StringTokenizer st = new StringTokenizer(temp);
		           while (st.hasMoreTokens()) {
		               System.out.println(st.nextToken());
		           }
//		           System.out.println(temp);  
		           
		       }  
		   }  
		   catch (FileNotFoundException e)  
		   {  
		       
		       e.printStackTrace();  
		  }  

	}

}

O problema é que tenho que colocar identico a este formato quando eu apresentar: exemplo esta acumulado este valor:

[menu]

exten => s,1,SetLanguage (br)

deverá aparecer assim:

contex=menu exten=s priority=1 app=SetLanguage arg=(br)
ramilani12

E como saiu?

Dentro do while StringTokenizer vc coloca a sua lógica …

nego_henry

saiu desta for

[menu]
;================================
exten
=>
s,n,SetLanguage
(br)

vou ter de executar varias outras coisas na verdade… peq este EXTEN irá acumular valores na sequencia… um array… ele tera q acumular até acabar linha.

Criado 30 de janeiro de 2007
Ultima resposta 30 de jan. de 2007
Respostas 6
Participantes 2