Tablica char w Javie

0

Dzień dobry,
Jak można napisać w Javie tablice z przedziału od A do Z? I jak wyświetlić?

Char [] tab = ['A' - 'Z']
System.out.println (tab)
1

Tutaj znajdziesz wszystkie potrzebne informacji (a nawet gotowy kod). Następnym razem spróbuj wyszukać rozwiązania problemu w google, wpisując zapytanie po angielsku.

https://www.dotnetperls.com/char-array-java
https://pl.wikipedia.org/wiki/ASCII
https://stackoverflow.com/questions/5714909/how-to-convert-ascii-to-int

0
char tab [] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for (int i=0; i<tab.length; i++)
{
    System.out.print(tab [i]);
}
System.out.println();
char tab2 [] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for (int j=0; j<tab2.length; j++)
{
    System.out.print(tab2 [j]);
}```
Czy mógłby ktoś pomóc, jak zrobić lustrzane odbicie liter w drugiej tablice?
0

Po pierwsze nie rób takich tablic ręcznie (nie wpisuj wartości od 'a' do 'z'). Wykorzystaj do tego pętle (https://www.w3schools.com/java/java_for_loop.asp). Przykładowy kod generowania charów od 'a' do 'z' podałem w poście wyżej (https://www.dotnetperls.com/char-array-java).

Po drugie zapoznaj się z artykułem wyjaśniającym czym jest ASCII (https://pl.wikipedia.org/wiki/ASCII). W skrócie jest to system kodowania znaków -> znaki (np. litery) możesz zamienić do wartości liczbowej. Przykładowo możesz char castować do int i na odwrót. Weź pod uwagę, że w zbiorze ASCII literze 'a' (małe "A") odpowiada wartość 97. Litery są w porządku alfabetycznym. Możesz więc iterować od 97 ('a') do 122 ('z') i zamieniać te wartości (int) do znaków ze zbioru ASCII (char), przykład (https://stackoverflow.com/questions/46343616/how-can-i-convert-a-char-to-int-in-java).

Po trzecie. W Jacie Char to nie to samo co char. Przykładowo Char, Integer, Double to nazwy klas a char, int, double to typy wbudowane (zwane też typami prostymi, ang. primitive types).

Po czwarte, gdy dojdziesz do tego momentu, odbicie lustrzane zrobisz iterując w drugą stronę. Czyli (przykładowo) zamiast od 97 do 122, to przejdziesz w pętli od 122, do 97. Ewentualnie, zakładając, że w zadaniu masz ręcznie wpisaną tablicę tab[], możesz przejść ją w pętli od ostatniego elementu do pierwszego a wartości wpisywać do nowej tablicy (https://www.geeksforgeeks.org/reverse-an-array-in-java/).

3
        List<Character> chars = IntStream.range('A','Z')
                .mapToObj(x-> (char) x)
                .collect(Collectors.toList());

jak koniecznie musisz mieć tablicę to:

        Character[] chars = IntStream.range('A', 'Z')
                .mapToObj(x -> (char) x)
                .toArray(Character[]::new);

Ale nikt nie uzywa tablic a Character to jeszcze rzadziej.

0

Wieśniacka wersja (jak widać mniej czytelna, choć ciut szybsza):

	char [] tab = new char['Z' - 'A' + 1];
	int i = 0;
	for (char c = 'A'; c <= 'Z'; ++c) //Java używa kodowania UTF16, które jest rozszerzeniem ASCII
		tab[i++] = c;
	for(i = 0; i < tab.length - 1; ++i) //drukowanie bez ostatniej litery
		System.out.printf("%c,", tab[i]);
	System.out.println(tab[i]);

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