Błąd z tablicami

0

Napisałem o to taki programik który ma służyć po to aby zamienić liczby systemu dziesiątkowego na dowolny inny system liczbowy, niestety nie wiem czemu nie działa, na pewno jest coś nie tak z tablicą i jego elementami, pewnie nieźle namieszałem, ale nie często używam tablic więc nie wiem co jest nie tak.

import java.util.*;

public class binaryTranslator {
@SuppressWarnings("resource")
public static void main(String[] args){
	while(true){	
	Scanner input = new Scanner(System.in);	
	System.out.println("Podaj system liczbowy");
	int system = input.nextInt();
	if(system == 1){
		System.out.println("Błąd, nie istnieje taki system liczbowy");
	}
	else if(system > 35){
		System.out.println("Błąd nie istnieje taki system liczbowy");
	}
	else{
	Scanner input2 = new Scanner(System.in);
	System.out.println("Podaj liczbę");
	long l = input2.nextLong();
	printBinaryLong(l, system);
	}
	}
}
static void printBinaryLong(long l, int system) 
{
System.out.print("Liczba: " + l + " w systemie liczbowym: ");
System.out.print(system + " wynosić będzie: ");
String[] a1 = {};
for(int i = 0; l > 0; i++){
	if(l%system == 10)
		a1[i] = "A";
	else if(l%system == 11)
		a1[i] = "B";
	else if(l%system == 12)
		a1[i] = "C";
	else if(l%system == 13)
		a1[i] = "D";
	else if(l%system == 14)
		a1[i] = "E";
	else if(l%system == 15)
		a1[i] = "F";
	else if(l%system == 16)
		a1[i] = "G";
	else if(l%system == 17)
		a1[i] = "H";
	else if(l%system == 18)
		a1[i] = "I";
	else if(l%system == 19)
		a1[i] = "J";
	else if(l%system == 20)
		a1[i] = "K";
	else if(l%system == 21)
		a1[i] = "L";
	else if(l%system == 22)
		a1[i] = "M";
	else if(l%system == 23)
		a1[i] = "N";
	else if(l%system == 24)
		a1[i] = "O";
	else if(l%system == 25)
		a1[i] = "P";
	else if(l%system == 26)
		a1[i] = "Q";
	else if(l%system == 27)
		a1[i] = "R";
	else if(l%system == 28)
		a1[i] = "S";
	else if(l%system == 29)
		a1[i] = "T";
	else if(l%system == 30)
		a1[i] = "U";
	else if(l%system == 31)
		a1[i] = "V";
	else if(l%system == 32)
		a1[i] = "W";
	else if(l%system == 33)
		a1[i] = "X";
	else if(l%system == 34)
		a1[i] = "Y";
	else if(l%system == 35)
		a1[i] = "Z";
	else if(l%system == 0)
		a1[i] = "0";
	else if(l%system == 1)
		a1[i] = "1";
	else if(l%system == 2)
		a1[i] = "2";
	else if(l%system == 3)
		a1[i] = "3";
	else if(l%system == 4)
		a1[i] = "4";
	else if(l%system == 5)
		a1[i] = "5";
	else if(l%system == 6)
		a1[i] = "6";
	else if(l%system == 7)
		a1[i] = "7";
	else if(l%system == 8)
		a1[i] = "8";
	else if(l%system == 9)
		a1[i] = "9";
	l = l/system;
}
for(int j = a1.length; j > 0; j--){
	System.out.print(a1[j]);
}
System.out.println("");
}

}
1

tworzysz pustą tablicę String[] a1 = {};
Skoro nie wiesz jakiej będzie wielkości użyj kolekcji np. List<String>list = new ArrayList<>();

Nawiasem mówiąc oprócz tablic powinieneś zerknąć także na pętlę :)

0

Oh, czyli nie mogę stworzyć tablicy nie podając jej wielkości?

0

Zgadza się

0

Dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1