estou precisando de ajuda para criar um pequeno programa que recebe uma pozição de um array de String e retorne a letra correspondete a posição por exemplo receba o valor 3 e retorna C mais se o valor paçar do tamanho do array ele mesmo assim continuar contando como AA, AB, AC… semelhante as colunas do Excel
import java.util.Scanner;
public class Lista {
String[] Excel = new String[] {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Z"};
Lista(){
capturarValores();
}
public static void main(String[] args) {
Lista excel = new Lista();
}
public void capturarValores(){
System.out.println("Digite o numero da tabela:");
int indice = new Scanner(System.in).nextInt() -1;
System.out.println(colunaExcel(indice));
}
public String colunaExcel(int indice){
if(indice > Excel.length){
String aux = Excel[(int)indice / Excel.length];
aux += Excel[(int)indice % Excel.length];
return(aux);
}
return Excel[indice];
}
}
Você tem que verificar quantas vezes a valor de entrada é maior que 23.
Por exemplo se o valor de entrada for 24 o resultado deveria ser AA.
@Vinicius_Salles essa foi a minha ideia quando coloco o valor maior que o tamanho do array, ele da erro mais quando o valor é menor que o tamanho do array funciona de boa
public String colunaExcel(int indice){
if(indice > Excel.length){ //se o valor for maior que o tamanho o array
String aux = Excel[(int)indice / Excel.length]; //quantas vezes é maior que o tamanho do array
aux += Excel[(int)indice % Excel.length]; //o que sobrou
return(aux); //valor que deve ser retornado
}
return Excel[indice]; //se não passar do tamanho do array
}
Eu faria um metodo que achasse apenas 1 letra por vez, depois iria concatenando elas em uma String. Eu acho muito mais fácil assim.
ja resolvi @Vinicius_Salles o metodo ficou assim
public String colunaExcel(int indice){
if(indice >= Excel.length){
String aux = Excel[1 - (int)indice / Excel.length];
aux += Excel[(int)indice % Excel.length];
return(aux);
}
return Excel[indice];
}
ate o momento minha solução é essa
public class Lista {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int parametro;
String coluna = null;
String[] Excel = new String[]{"A", "B", "C", "D", "E", "F", "G", "H",
"I", "J", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Z"};
System.out.println("Digite o parametro");
parametro = scan.nextInt();
parametro = parametro - 1;
if (parametro >= Excel.length) {
coluna = Excel[parametro / Excel.length - 1];
coluna += Excel[parametro % Excel.length];
} else {
coluna = Excel[parametro];
}
System.out.println(coluna);
}
}