asousaj 23 de nov. de 2013
Bem vindo ao fórum!
Pode tentar usar expressões regulares, pra forçar que fique apenas números.
String recebeProd = funcoes . abrir ( "produtos.txt" );
String [] dados = recebeProd . split ( "\n" );
int [] cod = new int [ dados . length ] ;
for ( int a = 0 ; a < dados . length ; a ++ ){
String [] linhas_prod = dados [ a ] . split ( "," );
cod [ a ] = Integer . parseInt ( linhas_prod [ a ] . replaceAll ( "[^0-9]+" , "" ));
}
System . out . println ( cod [ 0 ] );
Use a tag code pra ficar mais fácil de ler o código.
Manual do iniciante … http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor
Sua lógica tá certa? Se não resolver posta em anexo uma amostra do teu txt
brunotrinchao 25 de nov. de 2013
Mesmo forçando com a expressão regular esta com problema.
Abaixo estou tentando pegar apenas o primeiro índice p armazenar no cod mas n esta dando certo.
String recebeProd = funcoes . abrir ( "produtos.txt" );
String [] dados = recebeProd . split ( "\n" );
int [] cod = new int [ dados . length ] ;
for ( int a = 0 ; a < dados . length ; a ++ ){
String [] linhas_prod = dados [ a ] . split ( "," );
for ( int b = 0 ; b < 1 ; b ++ ){
//cod[b] = Integer.parseInt(linhas_prod[0].replaceAll("[^0-9]+",""));
cod [ b ] = Integer . parseInt ( linhas_prod [ 0 ] );
}
}
System . out . println ( cod [ 0 ] );
}
asousaj 25 de nov. de 2013
asousaj:
Sua lógica tá certa? Se não resolver posta em anexo uma amostra do teu txt
Perguntei porque acho que tua lógica tá errada.
Posta ai um pedaço do teu arquivo txt.
String recebeProd = funcoes . abrir ( "produtos.txt" );
String [] dados = recebeProd . split ( "\n" );
int [] cod = new int [ dados . length ] ;
for ( int a = 0 ; a < dados . length ; a ++ ){
String [] linhas_prod = dados [ a ] . split ( "," );
cod [ a ] = Integer . parseInt ( linhas_prod [ 0 ] . replaceAll ( "[^0-9]+" , "" ));
}
System . out . println ( cod [ 0 ] );
asousaj 26 de nov. de 2013
Segue o exemplo menos “capado”, [color=red]não fiz tratamento corretos dos possíveis erros e coisas do tipo [/color].
Considerando file.txt
100 , 23 , 55
3 a2123 , 4343 , 423423
5 3 , 243423 , 234
Classe de teste
import java.io.BufferedReader ;
import java.io.FileReader ;
import java.io.IOException ;
public class Teste {
public void testing () throws IOException {
String recebeProd = readFile ( "/home/adriano/testes/file.txt" );
String [] dados = recebeProd . split ( "\n" );
int [] cod = new int [ dados . length ] ;
for ( int a = 0 ; a < dados . length ; a ++ ) {
String [] linhas_prod = dados [ a ] . split ( "," );
cod [ a ] = Integer . parseInt ( linhas_prod [ 0 ] . replaceAll ( "[^0-9]+" , "" ));
System . out . println ( cod [ a ] );
}
}
private String readFile ( String file ) throws IOException {
BufferedReader reader = new BufferedReader ( new FileReader ( file ));
String line = null ;
StringBuilder stringBuilder = new StringBuilder ();
String ls = System . getProperty ( "line.separator" );
while (( line = reader . readLine ()) != null ) {
stringBuilder . append ( line );
stringBuilder . append ( ls );
}
reader . close ();
return stringBuilder . toString ();
}
public static void main ( String [] args ) {
Teste t = new Teste ();
try {
t . testing ();
} catch ( IOException e ) {
e . printStackTrace ();
}
}
}
Saída:
100
32123
53
Cuidado para que a ultima linha do arquivo não tenha apenas a “quebra de linha”.
Essas “coisinhas” que não considerei foi pra deixar o mais básico possível e fica pra você praticar.
brunotrinchao 26 de nov. de 2013
Muito obrigado asousaj. Vou usar seu algorítimo e ver no que dar. Vlw msm.