Tak jak w temacie jak skonwertować tablice int na tablice char [???]
char to int z zakresu [0, 65535) więc można to zrobić ręcznie.
package eu.runelord.programmers.t135111;
public class IntNaChar {
/**
* @param args
*/
public static void main(String[] args) {
int[] a = new int[]{1, 2, 3};
char[] b = new char[a.length];
for(int i= 0; i< a.length; i++){
if(a[i] >=0 && a[i]< Character.MAX_CODE_POINT )
b[i] = (char)a[i];
}
}
}
a jeżeli nie znamy ilości znaków tablicy "a"?
:/ nie dobijaj mnie :/ po to służy wywołanie a.length
Sorry mój błąd źle zadałem pytanie chodzi mi o to że zaczynam z dwiema pustymi tablicami do jednej z nich (int) wpisuje reszty z dzielenia liczby przez liczbę symbolizują dany układ liczbowy (2,8,10,16) następnie tablice typu int zapisuje w tablicy char
(system 16 wykorzystuje litery wiadomo). Chodzi mi o samą konwersje z int->char (załatwiłem to za pomocą switcha)
,ale może jest jakiś prościejszy sposób?
Musisz element po elemencie przepisywać z jednej tablicy do drugiej. Z tym, że jeżeli chcesz łatwo zamienić liczby na kody znaków, to możesz wykorzystać taki starożytny myk korzystający z faktu, że liczby i litery łacińskie są w kodzie ASCII i Unicode po kolei:
int liczby[];
char znaki[];
for(int i = 0; i < liczby.length; i++)
{
znaki[i] = (char) (liczby[i] < 10 ? (int)'0' + i : (int)'A' - 10 + i );
}
Oczywiście tablica znaki[] musi być conajmniej tej samej długości co liczby[].
Ten kod działa poprawnie dla podstawy liczb do 36 maksymalnie (10 cyfr + 26 liter).
W kodzie EBCDIC ten myk nie działa. Ale to raczej egzotyka.