Как я могу печатать символы Юникода в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу печатать символы Юникода в Java?

Сообщение Anonymous »

У меня есть класс «Card», который хранит символ и целое число. Я передаю символ Юникода карты (значения Юникода взяты с этой страницы Википедии: https://en.wikipedia.org/wiki/Playing_cards_in_Unicode) в экземпляр карты. Ниже показано, как выглядит класс.

Код: Выделить всё

import java.util.ArrayList;
import java.util.Collections;

public class Card {
protected char unicodeCard;
protected int value;

public Card() {}

public Card(char unicodeCard, int value) {
this.unicodeCard = unicodeCard;
this.value = value;
}

public ArrayList buildDeck() {
ArrayList deck = new ArrayList();
deck.add(new Card('\uF0A1', 11));
deck.add(new Card('\uF0B1', 11));
deck.add(new Card('\uF0C1', 11));
deck.add(new Card('\uF0D1', 11));
deck.add(new Card('\uF0A2', 2));
deck.add(new Card('\uF0B2', 2));
deck.add(new Card('\uF0C2', 2));
deck.add(new Card('\uF0D2', 2));
deck.add(new Card('\uF0A3', 3));
deck.add(new Card('\uF0B3', 3));
deck.add(new Card('\uF0C3', 3));
deck.add(new Card('\uF0D3', 3));
deck.add(new Card('\uF0A4', 4));
deck.add(new Card('\uF0B4', 4));
deck.add(new Card('\uF0C4', 4));
deck.add(new Card('\uF0D4', 4));
deck.add(new Card('\uF0A5', 5));
deck.add(new Card('\uF0B5', 5));
deck.add(new Card('\uF0C5', 5));
deck.add(new Card('\uF0D5', 5));
deck.add(new Card('\uF0A6', 6));
deck.add(new Card('\uF0B6', 6));
deck.add(new Card('\uF0C6', 6));
deck.add(new Card('\uF0D6', 6));
deck.add(new Card('\uF0A7', 7));
deck.add(new Card('\uF0B7', 7));
deck.add(new Card('\uF0C7', 7));
deck.add(new Card('\uF0D7', 7));
deck.add(new Card('\uF0A8', 8));
deck.add(new Card('\uF0B8', 8));
deck.add(new Card('\uF0C8', 8));
deck.add(new Card('\uF0D8', 8));
deck.add(new Card('\uF0A9', 9));
deck.add(new Card('\uF0B9', 9));
deck.add(new Card('\uF0C9', 9));
deck.add(new Card('\uF0D9', 9));
deck.add(new Card('\uF0AA', 10));
deck.add(new Card('\uF0BA', 10));
deck.add(new Card('\uF0CA', 10));
deck.add(new Card('\uF0DA', 10));
deck.add(new Card('\uF0AB', 10));
deck.add(new Card('\uF0BB', 10));
deck.add(new Card('\uF0CB', 10));
deck.add(new Card('\uF0DB', 10));
deck.add(new Card('\uF0AD', 10));
deck.add(new Card('\uF0BD', 10));
deck.add(new Card('\uF0CD', 10));
deck.add(new Card('\uF0DD', 10));
deck.add(new Card('\uF0AE', 10));
deck.add(new Card('\uF0BE', 10));
deck.add(new Card('\uF0CE', 10));
deck.add(new Card('\uF0DE', 10));
return deck;
}

public void shuffle(ArrayList deck) {
Collections.shuffle(deck);
}

public char getCardChar() {
return this.unicodeCard;
}
}
В моем основном методе я пытаюсь распечатать символы Юникода в ArrayList, но все, что я получаю от консоли, это ? характер. Кроме того, я попытался создать экземпляр PrintStream с кодировкой «UTF-8», но, похоже, это тоже не работает. Я получаю только такие результаты: ∩é▒. Ниже показано, как выглядит мой основной метод.

Код: Выделить всё

public static void main(String[] args) throws UnsupportedEncodingException {
PrintStream out = new PrintStream(System.out, true, "UTF-8");
Card card = new Card();
ArrayList deck = card.buildDeck();
for (int i = 0; i < deck.size(); i++) {
out.println(deck.get(i).getCardChar());
}
}
Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию. Заранее благодарим вас за любую помощь! :)

Подробнее здесь: https://stackoverflow.com/questions/792 ... rs-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»