Недавно я пытался создать программу, которая принимает два входа и проверяет, одинаково ли они представлены в других базах (базы до 20). Но я продолжаю получать исключение индекса за пределы в строке № 28 ... что делать?Почему моя программа продолжает давать мне ArrayIndexOutOfBoundsException, даже жесткая У меня нет одного
Например: 12 (основание 10) = 5 (основание 3) [. Оба представлены как '12' в своих соответствующих базах]
import java.util.Scanner;
import java.util.Arrays;
class Bases
{
public static void main()
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter Two Numbers: ");
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println("Thank You for inputting the numbers!");
String basea[] = new String[20];
String baseb[] = new String[20];
int i=0 , j=0;
for(i=0;i<20;i++)
{
basea[i] = convert(a,i+1);
baseb[i] = convert(b,i+1);
}
for(i=0;i<=19;i++)
{
for(j=0;i<=19;j++)
{
if(basea[i].equals(baseb[j]))
{//this is where the exception keeps popping
break ;
}
}
}
if(i!=20){
if(i==0){
i=9;
System.out.println(a+"(base "+(i+1)+") ="+b+"(base "+(j+1)+")");
}
else
System.out.println(a+"(base "+(i+1)+") ="+b+"(base "+(j+1)+")");
}
else System.out.println("Numbers dont match at all till base 20!!");
}
private static String convert(int number,int base)
{
return Integer.toString(number,base);
}
}
Ваших внутренний цикл имеет опечатку использование I вместо J для условного – Justen
'для (J = 0; я <= 19; j ++)' опечатка – Jerry06
"даже жесткий я не получил один" У вас явно есть одна из тех капризных JVM, которые вам просто нравятся. Либо это, либо * у вас есть один *. –