konwersja int tab[] ->char tab[]

0

Tak jak w temacie jak skonwertować tablice int na tablice char [???]

0

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];
		}
	}
}
0

a jeżeli nie znamy ilości znaków tablicy "a"?

0

:/ nie dobijaj mnie :/ po to służy wywołanie a.length

0

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?

0

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.

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