Alguém poderia me ajudar a saber qual é o problema aqui que está causando erro? Ainda não conseguir descobrir.
[code]import java.io.*;
public class Teste {
public static void main(String[] args) {
int N = 1;
int iPos = 0;
int iCont = N;
char Lista[] = new char[N];
System.out.println("____________________________________");
System.out.println(" INCLUSÃO");
System.out.println("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
System.out.print("Digite uma \"Letra\" >> ");
char cLetra = LerChar();
while(iPos <= N && Lista[iPos] < cLetra){
iPos++;
}
if(Lista[iPos] == cLetra){
System.out.println("A Letra informada já existe!");
} else {
iCont = N;
while(iCont > iPos){
Lista[iCont+1] = Lista[iCont];
iCont++;
}
Lista[iPos] = cLetra;
N++;
}
System.exit(0);
}
public static char LerChar() {
try {
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
String S = BR.readLine();
return S.charAt(0);
} catch (IOException e) {
return (' ');
} catch (NumberFormatException e) {
return (' ');
}
}
}[/code]
Abraços
Fábio Heleno
dae cara, blz>>
pelo q estou vendo, o seu array estah começando com uma única posição, pois N tem o valor 1, e com o valro default…ou seja …acho que eh null…
portanto ao comprar se o conteudo da posicao do array é maior que a letra digitada, ele gera a exceção, pois não consegue comparar null, com o char…
caso não seja isto, se vc analisar , vc verá q estah incrementando o ipos , como na primeira iteração ele eh zero, ele funciona, e entra no while, passando para 1, mas quando ele compara novamente para ver se fica no while o programa reconhece os seguintes dados:
ipos contendo 1 e comparando com N(que eh igual a 1), ele passa por este teste, e logo em seguida ele tenta acessar a posição 1 do array (Lista[Ipos], e talvez gera exceção aqui como arrayIndexOutBound( pois o array tem apenas 1 posição, no caso a posição zero)…
eu não testei o codigo, mas se eu fosse vc, colocaria um println depois das linhas que vc estah en dúvida, para seguir os passos…
Tenta colocar no trecho:
while(iPos <= N && Lista[iPos] < cLetra){
iPos++;
}
Lista.length
acho que dá certo
acabei de testar o seu program e verifiquei que é do arrayIndexOutOfBounf]d mesmo…ou seja, na hora q vc incrementa iPos, ele gera a exceção…
não entendi o que vc quer fazer com este código, senão poderia tentar dar alguma dica…
teh mais…
espero tê-lo ajudado
Ele gera esse erro mesmo.
Eu transformei um metodo em uma classe para postar aqui, mais na realidade é um metodo de uma classe cujo o programa faz inclusao, alteração, exclusão e atravessamento. Trabalho de faculdade.
Vou tentar as dicas que me deram e retorno assim que tentar.
Valeu pela atenção…
Abraços
Fábio Heleno
Conseguir avançar… :viva:
Agora ele aceita o cadastro, mais a cada cadastro novo, ele zera o anterior… hehehe…alguém poderia me ajudar? 
Postei o codigo de tal maneira que basta so copiar e rodar.
Inclusao
[code]import java.io.*;
public class TesteArray {
public static void main(String[] args) {
int iValorFinal = 0;
int opcao = 0;
char Lista[] = new char[iValorFinal];
do{
System.out.println("\n");
System.out.println("1 - Inclusao");
System.out.println("2 - Sair");
System.out.print("\n==> ");
opcao = ConsoleInt();
if(opcao == 1){
System.out.println();
System.out.println("____________________________________");
System.out.println(" INCLUSÃO");
System.out.println("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
System.out.print("Digite uma \"Letra\" >> ");
char Letra = ConsoleChar();
Lista = new char[iValorFinal+1];
int iPos = 0;
int iCont;
while((iPos < iValorFinal) && (Lista[iPos] < Letra)){
iPos++;
}
if(Lista[iPos] == Letra){
System.out.println("A Letra informada já existe!");
} else {
iCont = iValorFinal;
while(iCont > iPos){
Lista[iCont+1] = Lista[iCont];
iCont++;
}
Lista[iPos] = Letra;
iValorFinal++;
}
System.out.println();
int posicao = 0;
while(posicao < iValorFinal){
System.out.println("Posição: [" + posicao + "] -> Letra: " + Lista[posicao]);
posicao++;
}
System.out.println();
System.out.println("Tecle <ENTER> para continuar...");
ConsoleInt();
}
}while(opcao != 2);
}
public static char ConsoleChar() {
try {
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
String S = BR.readLine();
return S.charAt(0);
} catch (IOException e) {
return ('0');
} catch (NumberFormatException e) {
return ('0');
}
}
public static int ConsoleInt() {
try {
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
String S = BR.readLine();
return Integer.parseInt(S);
} catch (IOException e) {
return (0);
} catch (NumberFormatException e) {
return (0);
}
}
}[/code]