[英]Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
[英]Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException 4
我无法识别代码中的错误,有人可以告诉我出了什么问题,已经尝试了所有方法,但是找不到线程“ main”中的异常java.lang.ArrayIndexOutOfBoundsException:4。
我是巴西人,我的变量会让您理解有些复杂,因为我不会做很多工作来更改所有代码
package Aulas_POO;
import javax.swing.JOptionPane;
public class edicoes {
static byte espaço=10;
static String pesquisa;
static String informacoes[][] = new String [10][4];
static String escolhaMenu;
public static void main(String[] args) {
String opcao="";
do{
opcao= ExibirMenu();
if(opcao.equals("1")){ Cadastro(); }
if(opcao.equals("2")){ pesquisa(); }
if(opcao.equals("3")){ edicao(); }
if(opcao.equals("4")){visualizar(); }
if(opcao.equals("5")){deletarTudo();}
if(opcao.equals("6")){deletarUm(); }
}while(!opcao.equals("7"));
}
private static String ExibirMenu() {
// TODO Auto-generated method stub
String menu ="DIGITE UMA DAS OPÇÕES\n\n\n"
+"1) Cadastro\n"
+"2) Pesquisa de nomes\n"
+"3) Edição de nomes\n"
+"4) Visualizar a lista\n"
+"5) Deletar todos cadastros\n"
+"6) Deletar Apenas um cadastro\n"
+"7) SAIR";
return JOptionPane.showInputDialog(menu);
}
private static void deletarUm() {
// TODO Auto-generated method stub
pesquisa=JOptionPane.showInputDialog("Informe o Cpf");
for (int i = 0; i < informacoes.length; i++) {
if (pesquisa.equals(informacoes[i][1])){
informacoes[i][0]=null;
informacoes[i][1]=null;
informacoes[i][2]=null;
informacoes[i][3]=null;
}
}
JOptionPane.showMessageDialog(null,"Cadastro Deletado com SUCESSO!");
}
private static void deletarTudo() {
// TODO Auto-generated method stub
for (int i = 0; i < informacoes.length; i++) {
informacoes[i][0]=null;
informacoes[i][1]=null;
informacoes[i][2]=null;
informacoes[i][3]=null;
}
}
private static void visualizar() {
// TODO Auto-generated method stub
String exibeInformacoes="";
for (int i = 0; i < informacoes.length; i++) {
if(!(informacoes[i][i]==null)){
exibeInformacoes+="\nNome: "+informacoes[i][0]+", CPF: "+informacoes[i][1]+", CEP: "+informacoes[i][2]+" e Telefone: "+informacoes[i][3];
}
}
JOptionPane.showMessageDialog(null,exibeInformacoes);
}
private static void edicao() {
// TODO Auto-generated method stub
pesquisa=JOptionPane.showInputDialog("Informe o CPF");
escolhaMenu="Digite \n\n"+
"1-Editar nome\n"+
"2-Editar cep\n"+
"3-Editar telefone\n"+
"4-Editar todos\n"+
"5-Sair";
for (int i = 0; i < informacoes.length; i++) {
if(escolhaMenu.equals("1")){
informacoes[i][0]=JOptionPane.showInputDialog("Informe o novo Nome");}
if(escolhaMenu.equals("2")){
informacoes[i][2]=JOptionPane.showInputDialog("Informe o novo cep");}
if(escolhaMenu.equals("3")){
informacoes[i][3]=JOptionPane.showInputDialog("Informe o novo telefone");}
if(escolhaMenu.equals("4")){
informacoes[i][0]=JOptionPane.showInputDialog("Informe o novo Nome");
informacoes[i][1]=JOptionPane.showInputDialog("Informe o novo cpf");
informacoes[i][2]=JOptionPane.showInputDialog("Informe o novo cep");
informacoes[i][3]=JOptionPane.showInputDialog("Informe o novo telefone");}
if(escolhaMenu.equals("5")){return;}
}
}
private static void pesquisa() {
// TODO Auto-generated method stub
pesquisa=JOptionPane.showInputDialog("Informe o CPF");
escolhaMenu="Digite \n\n"+
"1-Pesquisar nome\n"+
"2-Pesquisar cep\n"+
"3-Pesquisar telefone\n"+
"4-Pesquisar todos\n"+
"5-Sair";
for (int i = 0; i < informacoes.length; i++) {
if(pesquisa.equals(informacoes[i])){
if(escolhaMenu.equals("1")){
JOptionPane.showMessageDialog(null,informacoes[i][0]);}
}
if(escolhaMenu.equals("2")){
JOptionPane.showMessageDialog(null,informacoes[i][2]);}
if(escolhaMenu.equals("3")){
JOptionPane.showMessageDialog(null,informacoes[i][3]);}
if(escolhaMenu.equals("4")){
JOptionPane.showMessageDialog(null,"\n"+informacoes[i][i]);}
}
if(escolhaMenu.equals("5")){
return;
}
}
private static void Cadastro() {
// TODO Auto-generated method stub
if(espaço!=0){
informacoes[0][0]=JOptionPane.showInputDialog("Informe o nome");
informacoes[0][1]=JOptionPane.showInputDialog("Informe o cpf");
informacoes[0][2]=JOptionPane.showInputDialog("Informe o cep");
informacoes[0][3]=JOptionPane.showInputDialog("Informe o telefone");
JOptionPane.showMessageDialog(null,"Cadastro efetuado com SUCESSO!");
espaço--;
}
else{
JOptionPane.showMessageDialog(null,"Não há mais espaço disponível , remova algum cadastro para novo cadastro");
}
}
}
为了将来参考, 请将您的代码缩减为一个简短但完整的示例来说明问题,并且,如果要报告异常,请包括堆栈跟踪和相关的行号。
我怀疑这是问题所在:
for (int i = 0; i < informacoes.length; i++) {
if(!(informacoes[i][i]==null)){
那将导致一个问题,当i
是4。
当然,这可能不是唯一的问题-您的代码可能还没有达到目标。 如果不对您要实现的目标进行任何解释,并且对所发生的问题的描述不足,则很难读取超过240行的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.