Fórum Separar nomes de arquivo que possui número de conteúdo diferentes #589454
02/12/2017
0
Eai galera, estou com um problema em um exercício que tenho q ler um arquivo de texto e nesse arquivo de texto segue o conteúdo:
Nome Dt.Nasc CPF Dependentes
lUCAS gABRIEL ;26071999;54897635815;
aFSDGSDHDFJ sDGSGSGD ;15031950;61655468920;lakghlas lsfihasf ;yhfdhfghlas lsfihasf ;
aGAHDFSHKY dFFGSDGDR ;15082010;12547896528;lakghlas sagdfjf ;
xCBXHF sDGSDHDS ;02022015;35316824865;lakghlas ityyyj ;lqrghlas lsfihasf ;lqrghlas lsfihasf ;
Já consegui separar e editar até CPF pq é a única parte do arquivo que eu tenho ctz q vai existir, mas uma pessoa pode ter de 0 À infinitos dependentes
e quando começo a separar como a primeira linha não possui dependentes quando passa a ler a segunda dá erro
deem uma força aí, irei disponibilizar o codigo
Não liguem para os codigos em comentário, não os apaguei pq talvez eu acabe usando, eu preciso separar nome dos dependentes pra adicionar em um ArrayList e exibir, lembrando que possuo a classe Dependentes e Pessoas, e dentro de Pessoas possuo um ArrayList de Dependentes, mas se for necessário posso tirar o ArrayList para dependentes, a minha maior preocupação é conseguir extrair cada nome de dependente de cada linha
Nome Dt.Nasc CPF Dependentes
lUCAS gABRIEL ;26071999;54897635815;
aFSDGSDHDFJ sDGSGSGD ;15031950;61655468920;lakghlas lsfihasf ;yhfdhfghlas lsfihasf ;
aGAHDFSHKY dFFGSDGDR ;15082010;12547896528;lakghlas sagdfjf ;
xCBXHF sDGSDHDS ;02022015;35316824865;lakghlas ityyyj ;lqrghlas lsfihasf ;lqrghlas lsfihasf ;
Já consegui separar e editar até CPF pq é a única parte do arquivo que eu tenho ctz q vai existir, mas uma pessoa pode ter de 0 À infinitos dependentes
e quando começo a separar como a primeira linha não possui dependentes quando passa a ler a segunda dá erro
deem uma força aí, irei disponibilizar o codigo
public static void main(String[] args) throws IOException {
try {
ArrayList <Dependentes> dependentes=new ArrayList<Dependentes>();
ArrayList <Pessoa> pessoa=new ArrayList<Pessoa>();
FileReader arquivo=new FileReader("Pessoas.txt");
BufferedReader lerArquivo=new BufferedReader(arquivo);
String linha=lerArquivo.readLine();
while(linha!=null) {
/*String s[]=linha.split(";");
String nomeInteiro=s[0];
String nome[]=nomeInteiro.split(" ");
String nome1=nome[0].substring(0, 1).toUpperCase().concat(nome[0].substring(1).toLowerCase());
String sobrenome=nome[1].substring(0, 1).toUpperCase().concat(nome[1].substring(1).toLowerCase());
nomeInteiro=nome1+" "+sobrenome;
String data=s[1];
String dia=data.substring(0,2);
String mes=data.substring(2,4);
String ano=data.substring(4,8);
data=dia+"/"+mes+"/"+ano;
String cpf=s[2];*/
String nomeInteiro=linha.substring(0, 36);
String nome[]=nomeInteiro.split(" ");
String nome1=nome[0].substring(0, 1).toUpperCase().concat(nome[0].substring(1).toLowerCase());
String sobrenome=nome[1].substring(0, 1).toUpperCase().concat(nome[1].substring(1).toLowerCase());
nomeInteiro=nome1+" "+sobrenome;
String dia=linha.substring(37,39);
String mes=linha.substring(39,41);
String ano=linha.substring(41,45);
String data=dia+"/"+mes+"/"+ano;
String cpf=linha.substring(46, 57);
String cpfValido=Cpf.ValidaCPF(cpf);
/*if(s.length>3) {
for(int i=3;i<s.length;i++) {
String nomesDp=s[i];
}
}*/
String linha2=linha.substring(57);
System.out.println(linha2);
String linha3="";
int inicio=0;
int termino=37;
int i=0;
try {
while(i<10) {
String nomesDependentes=linha2.substring(inicio,termino);
linha3+=nomesDependentes;
inicio+=37;
termino+=37;
i++;
}
}catch(Exception erro) {
}
String nomesDp[]=linha3.split(";");
int c=0;
while(c<10){
String nomeIntDp[]=nomesDp[c].split(" ");
String primeiroNomeDp=nomeIntDp[0].substring(0, 1).toUpperCase().concat(nomeIntDp[0].substring(1).toLowerCase());
String sobrenomeDp=nomeIntDp[1].substring(0, 1).toUpperCase().concat(nomeIntDp[1].substring(1).toLowerCase());
String nomeDp=primeiroNomeDp+" "+sobrenomeDp;
System.out.println(nomeDp);
c++;
}
System.out.println(linha3);
Pessoa p = new Pessoa(nomeInteiro,data,cpf,cpfValido);
pessoa.add(p);
//linha2=linha2.replace(";","-");
//linha2=linha2.replace("- ","");
linha=lerArquivo.readLine();
}
arquivo.close();
for(Pessoa p1:pessoa) {
System.out.println(p1.getNome()+" - "+p1.getDataNascimento()+" - "+Cpf.imprimeCPF(p1.getCpf())+" - "+p1.getCpfValido()+" - "
);
}
}catch(Exception erro) {
System.out.println("ERRO!!");
}
}
Não liguem para os codigos em comentário, não os apaguei pq talvez eu acabe usando, eu preciso separar nome dos dependentes pra adicionar em um ArrayList e exibir, lembrando que possuo a classe Dependentes e Pessoas, e dentro de Pessoas possuo um ArrayList de Dependentes, mas se for necessário posso tirar o ArrayList para dependentes, a minha maior preocupação é conseguir extrair cada nome de dependente de cada linha
Lucas Rodrigues
Curtir tópico
+ 0
Responder
Posts
02/12/2017
Lucas Rodrigues
A formatação foi errada no arquivo de texto, o editor do Devmedia retira todos os espaçamentos
mas cada nome tem um espaço de 36 caracteres tanto para pessoas quanto para dependentes
mas cada nome tem um espaço de 36 caracteres tanto para pessoas quanto para dependentes
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)