Привет всем, я только начал пытаться изучать Java и столкнулся с чем-то, что действительно сбивает с толку!
Я печатал пример из книги, которую я использую. Это продемонстрировать
тип данных char.
Код выглядит следующим образом:
public class CharDemo
{
public static void main(String [] args)
{
char a = 'A';
char b = (char) (a + 1);
System.out.println(a + b);
System.out.println("a + b is " + a + b);
int x = 75;
char y = (char) x;
char half = '\u00AB';
System.out.println("y is " + y + " and half is " + half);
}
}
Бит, который меня смущает, это утверждение, char half = '\ u00AB'. В книге говорится, что \ u00AB - это код для символа '1/2'. Как описано, когда я компилирую и запускаю программу из cmd, символ, который создается в этой строке, фактически равен «1/2».
Так что, похоже, все работает как надо. Я решил поиграть с кодом и попробовать разные юникоды. Я погуглил несколько таблиц Юникода и не нашел ни одной из них, согласующихся с приведенным выше результатом.
В каждом найденном мной сообщалось, что код / u00AB был не для «1/2», а фактически для этого:
http://www.fileformat.info/info/unic...r/ab/index.htm
Итак, какой набор символов использует Java, я думал, что Unicode должен был быть именно таким, Uni, только один. Я искал часы, и нигде не могу найти набор символов, в котором говорится, что / u00AB равен 1/2, но мой компилятор java интерпретирует его как.
Я, должно быть, здесь упускаю что-то очевидное! Спасибо за любую помощь!