String (número negativo) -> Int

2 respostas
tiagokos

Fala pessoal,

Estou fazendo um trabalho para a faculdade que se trata do seguinte.

1. Gerar 10.000.000 números aleatórios
2. Dividir em arrays menores
3. Mandar para métodos de classificação

---

Já tenho os 10.000.000 números em um arquivo txt mas não consigo mandar para uma array de 100 elementos.

int[] v100 = new int[100]; 

        File arquivo = new File("RandVetor.txt");
        String linha;
        int i = 0;
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo)));
        while (br.ready()) {
            linha = br.readLine();
            String linhatmp = linha.replace(" ", "");
            if(i < 100) v100[i] = Integer.parseInt(linhatmp);
            i++;
        }
        br.close();

Erro:
Exception in thread "main" java.lang.NumberFormatException: For input string: "-1961569006211703011"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:461)
at java.lang.Integer.parseInt(Integer.java:499)
at sorters.Main.main(Main.java:36)
Java Result: 1

Main.java:36 -> if(i < 100) v100[i] = Integer.parseInt(linhatmp);

Obrigado!

2 Respostas

sf.marcius

“-1961569006211703011” está extrapolando os limites do int.
tenta com Long:

Long.parseLong("-1961569006211703011");

assim vai funcionar.

tiagokos

Já consegui, achei que o Long do Java tinha 4 bytes, mas tem 8.
Eu precisava gerar números de 4 bytes.

Já arrumei tudo, brigadão!

Criado 10 de setembro de 2010
Ultima resposta 10 de set. de 2010
Respostas 2
Participantes 2