Ler linha de um txt e retirar parte do conteudo de cada linha

7 respostas
M

Boa tarde a todos! Dei uma boa pesquisada porem não encontrei o que preciso exatamente.

Tenho um arquivo txt com o seguinte conteudo:

1 - TEXTO 1
1.1 - TEXTO 2
1.1.1 - TEXTO 3
2 - TEXTO 4

Eu gostaria de retirar tudo que for depois do hifen (-) e ler linha a linha apenas dos números. E tambem gostaria de ler apenas os números que começa com 1 e imprimir. Depois, em outra função, eu leio apenas os número que começa com 2 e assim sucessivamente.

Vou ter que fazer um insert no banco de acordo com cada numeração e quantas casas cada um tem. Eu já consegui ler a quantidade de casa, porem nao consigo separar a leitura apenas com o numero, retirando o texto.

Valeu pessoal. Obrigadão!

7 Respostas

xandevieira

vc pode usar split da classe String

M

Pessoal, consegui separar.

try {  
        BufferedReader buffer =  new BufferedReader(new FileReader("C:\\teste.txt"));  
           String linha = null;
            while((linha = buffer.readLine()) != null){
        String[]linhaSeparado = linha.split("-");
        for(int i = 0; i < linhaSeparado.length; i++){
             System.out.println(linhaSeparado[i]);
             i++;
        }
        
    }             
            } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

Porem como eu faço para ler apenas até o ultimo numero 1. No caso 1.1.1.01.0001, por exemplo? E parar antes do 2

Valeu galera

xandevieira

se seu texto for no padrão q vc citou, pode simplesmente ler linhaSeparado[0]; linhaSeparado[1]

A
marceloptc:
Pessoal, consegui separar.
try {  
        BufferedReader buffer =  new BufferedReader(new FileReader("C:\\teste.txt"));  
           String linha = null;
            while((linha = buffer.readLine()) != null){
        String[]linhaSeparado = linha.split("-");
        for(int i = 0; i < linhaSeparado.length; i++){
             System.out.println(linhaSeparado[i]);
             i++;
        }
        
    }             
            } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

Porem como eu faço para ler apenas até o ultimo numero 1. No caso 1.1.1.01.0001, por exemplo? E parar antes do 2

Valeu galera

Para manipulação de Strings vide o pacote StringUtils da Apache e/ou Expressões Regulares.

Rodrigo_Sasaki

Nesse caso eu discordo, não tem pra que adicionar um jar a mais pra isso, sendo que o split (que usa uma expressão regular) já resolve o problema.

Hebert_Coelho

Nesse caso eu discordo, não tem pra que adicionar um jar a mais pra isso, sendo que o split (que usa uma expressão regular) já resolve o problema.
Concordo com ele também.

Para que adicionar dependências e outros jars se o próprio java já tem tudo? E fácil… não é nada dificil…

M

Pessoal, consegui.

Anteriormente havia conseguido retirar o conteudo após o hifen. Agora consegui ler so os numeros que começa com 1.

if(linhaSeparado[0].charAt(0) == '1')

Valeu galera.

Criado 13 de fevereiro de 2013
Ultima resposta 13 de fev. de 2013
Respostas 7
Participantes 5