Alguem ajuda

5 respostas
Myrone

public static void swap(String mat[][], int i, int j) {
String auxmat[]= new String[3];

auxmat[0] = mat[i][0];
    auxmat[1] = mat[i][1];
    auxmat[2] = mat[i][2];
    
    mat[i][0] = mat[j][0];
    mat[i][1] = mat[j][1];
    mat[i][2] = mat[j][2];
    
    mat[j][0] = auxmat[0];
    mat[j][1] = auxmat[1];
    mat[j][2] = auxmat[2];
    
}

public static void ordenar(String mat[][],int a)
{
    boolean changed = true;
    int x=0,y=0;
    
    while (changed) 
    {
        changed = false;

        for (int i = 0; i <= a; i++) 
        {
            x=Integer.parseInt(mat[i][2]);
            y=Integer.parseInt(mat[i+1][2]);           [b](Main.java:82)[/b]
            if (x > y) 
            {
                swap(mat, i, i + 1);
                changed = true;
            }
        }
    }
}
Exception in thread main java.lang.NumberFormatException: null

at java.lang.Integer.parseInt(Integer.java:415)

at java.lang.Integer.parseInt(Integer.java:497)

at Main.ordenar(Main.java:82)

at Main.main(Main.java:168)

alguem sabe qual é o erro

5 Respostas

Paulo_Silveira

a String esta nula, nao ha valor dentro dessa posicao da sua matriz. ai nao da para transformar em um inteiro.

Myrone

vou enviar todo o codigo para voce ver…mas julgo que seja outro o problema…

Myrone
import java.io.File;

import java.io.FileNotFoundException;

import java.util.Formatter;

import java.util.FormatterClosedException;

import java.util.Scanner;

import javax.swing.JOptionPane;

public class Main {

public Main() {
}

public static void actualiza(String dados[][],int i)
{
    String equipa;
    int pontos,pontosf;
    int jogos,jogosf;
    int j,x=0,op;
    equipa=JOptionPane.showInputDialog("Digite o nome da equipa a actualizar: ");
    for(j=0; j!=i; j++)
    {
        if(dados[j][0].compareTo(equipa)==0)
        {
            op=Integer.parseInt(JOptionPane.showInputDialog("A equipa " + equipa + ": \n 1-Venceu \n 2-Perdeu \n 3-Empatou \n 0-Cancelar"));
            
            if (op==1)
            {
                jogos=Integer.parseInt(dados[j][1])+1;
                dados[j][1]=String.valueOf(jogos);
                pontos=Integer.parseInt(dados[j][2])+3;
                dados[j][2]=String.valueOf(pontos);                 
            }
            if (op==2)
            {
                jogos=Integer.parseInt(dados[j][1])+1;
                dados[j][1]=String.valueOf(jogos);
                
            }
            if (op==3)
            {
                jogos=Integer.parseInt(dados[j][1])+1;
                dados[j][1]=String.valueOf(jogos);
                pontos=Integer.parseInt(dados[j][2])+1;
                dados[j][2]=String.valueOf(pontos);        
            }
            x=1;
        }
    }
    if(x==0)
        JOptionPane.showMessageDialog(null,"Equipa não Encontrada!!");
}

public static void swap(String mat[][], int i, int j) {
    String auxmat[]= new String[3];

    auxmat[0] = mat[i][0];
    auxmat[1] = mat[i][1];
    auxmat[2] = mat[i][2];
    
    mat[i][0] = mat[j][0];
    mat[i][1] = mat[j][1];
    mat[i][2] = mat[j][2];
    
    mat[j][0] = auxmat[0];
    mat[j][1] = auxmat[1];
    mat[j][2] = auxmat[2];
    
}

public static void ordenar(String mat[][],int a)
{
    boolean changed = true;
    int x=0,y=0;
    
    while (changed) 
    {
        changed = false;

        for (int i = 0; i <= a; i++) 
        {
            x=Integer.parseInt(mat[i][2]);
            y=Integer.parseInt(mat[i+1][2]);
            if (x > y) 
            {
                swap(mat, i, i + 1);
                changed = true;
            }
        }
    }
}

 public static void gravadados(String dados[][],int i)
 {
     String s;
     int a;
     Formatter output=null;
     try
     {
         output=new Formatter(new File("classifica.txt"));
     }
     catch(SecurityException se)
     {
         System.out.println("Não tem permissões para escrever no ficheiro");
         System.exit(1);
     }
     catch(FileNotFoundException fnfe)
     {
         System.err.println("ERRO");
         System.exit(1);
     }
     for(a=i-1;a>=0;a--)
     {
         s=dados[a][0]+":"+dados[a][1]+":"+dados[a][2]+"\n";
         try
         {
             output.format("%s",s);
         }
         catch(FormatterClosedException fce)
         {
             System.err.println("Erro a escrever no ficheiro");
             System.exit(1);
         }
         
     }
     if(output!=null)
         output.close();
     
 }   
 
public static void main(String[] args) 
{
    String s,a[];
    int i=0;
    int op;
    String dados[][]=new String[30][3];
    //Abrir o ficheiro Dados.txt para leitura
    Scanner input=null;
    try
    {
        input=new Scanner(new File("classifica.txt"));
    }
    catch(FileNotFoundException fnfe) 
    {
        System.err.println("Nao encontra o ficheiro");
             System.exit(1);
    }
    //passar para matriz
    while(input.hasNext())
    {
        s = input.nextLine(); 
        JOptionPane.showMessageDialog(null,s);
        a=s.split(":");
        dados[i][0]=a[0];
        dados[i][1]=a[1];
        dados[i][2]=a[2];
        i++;
    }
    if(input!=null)
        input.close();
    do
    {
        op=Integer.parseInt(JOptionPane.showInputDialog(null,"Menu \n 1-Actualizar tabela \n 2-Ordenar tabela \n 0-Sair"));
        if(op==1)
            actualiza(dados,i);
        if(op==2)
            ordenar(dados,i);
    }
    while(op!=0);
    gravadados(dados,i);
 
}

}

é suposto ele actualizar os dados de uma ekipa , ordenar se kiser i por fim gravar os dados alterados…
mas ta a dar os erros onde ja disse

Myrone

ja descobri…obrigado…era uma das posiçoes que ficava null i ele “comparava” com null…tanks…

bebad

:roll:
vamos fazer topicos mais claros, coloca ai a resolucao do problema amigo.
falous

Criado 17 de dezembro de 2006
Ultima resposta 17 de dez. de 2006
Respostas 5
Participantes 3