eu tenho um arquivo texto delimitado com o caracter pipe "|"
ate ai blz...
tenho um arquivo texto
com os seguintes dados:
a|b||c||
observe que o ultimo esta vazio... ou seja "||"
quando eu executo o aplicativo abaixo ele nao gera um array com tamanho 5
ele gera com tamanho 4.
ou seja observe que depois do b tem um vazio tambem.. ele conta este como vazio... mas o ultimo ele nao considera...
e o pior este arquivo sao dados vindos de outro aplicativo que nao tem como eu modificar... eu tenho que tratar...
como existem varios tipos de registros neste texto... e muito trabalhoso eu ficar tratando o lenght da linha que estou lendo...
tem alguma maneira de resolver este problema... digo ele considerar o ultimo vazio...
antes que alguem me pergunte e o seguinte:
este arquivo e um arquivo com layout gerado para o emissor de nota fiscal eletronica
fazer a importacao e estou fazendo um projeto para ler este mesmo layout do emissor e emitir a nota fiscal eletronica...
e isso acontece em alguns registros...
segue abaixo um aplicativo teste que ilustra o problema:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package olamundo;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author Jonas
*/
public class TesteSplit {
public static void main(String[] args) throws FileNotFoundException, IOException {
File file = new File("c:\\teste.txt");
FileInputStream in = new FileInputStream(file);
FileReader reader = new FileReader(file);
BufferedReader b = new BufferedReader(reader);
String s;
s = b.readLine();
System.out.println(s);
String s2[] = s.split("|");
System.out.println(s2.length);
String s3[] = s.split("\\|");
System.out.println(s3.length);
b.close();
}
}