Статьи

Использование для специальных символов в коде Java


Задумывались ли вы, как вы можете написать такой код на Java?

    if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)

Фон

Подчеркивания уже давно используется в C-подобном языке, таком как Java, для различения полей и имен методов.

Распространено видеть начальное подчеркивание, такое как
_field, или подчеркивание в константе, такой как
UPPER_CASE . В Java
$ также используется в именах классов и имен методов доступа.

У SCJP есть примечания, в которых говорится


Идентификаторы должны начинаться с буквы, символа валюты ($) или соединительного символа, такого как подчеркивание (_).
Идентификаторы не могут начинаться с цифры!

Это приводит к вопросу; какие еще соединительные символы есть?

Какие соединительные персонажи?

Связывающий персонаж соединяет два слова вместе.
На этой странице перечислены десять соединительных символов

U + 005F НИЗКАЯ ЛИНИЯ _ Посмотреть
U + 203F UNDERTIE Посмотреть
U + 2040 ХАРАКТЕРНАЯ СВЯЗЬ Посмотреть
U + 2054 INVERTED UNDERTIE Посмотреть
U + FE33 ПРЕЗЕНТАЦИОННАЯ ФОРМА ДЛЯ ВЕРТИКАЛЬНОЙ НИЗКОЙ ЛИНИИ _ Посмотреть
U + FE34 ПРЕЗЕНТАЦИОННАЯ ФОРМА ДЛЯ ВЕРТИКАЛЬНОЙ ВОЛНЫ НИЗКОЙ ЛИНИИ Посмотреть
U + FE4D НИЗКАЯ ЛИНИЯ Посмотреть
U + FE4E CENTRELINE LOW LINE Посмотреть
U + FE4F ВОЛНОВАЯ НИЗКАЯ ЛИНИЯ Посмотреть
U + FF3F ПОЛНОСТЬЮ НИЗКАЯ ЛИНИЯ _ Посмотреть

И если вы попробуете следующее, вы можете найти его компиляцией.

     int _, ‿, ⁀, ⁔, ︳, ︴, ﹍, ﹎, ﹏, _;

Хотя это интересно, имеет ли оно смысл? Недавно я нашел один.

У меня есть объект, который представляет столбец, и этот столбец имеет значение для этой строки. Имена в основном одинаковые, но я хочу, чтобы обозначения отличали их. Так у меня что то типа

    Column<Double>︴tp︴ = table.getColumn("tp", double.class);
    double tp = row.getDouble(︴tp︴);

Таким образом, я могу видеть с помощью
tp столбца, и это значение.

Интересно, что символы валюты также действительны.

 for (int i = Character.MIN_CODE_POINT; i <= Character.MAX_CODE_POINT; i++)
        if (Character.isJavaIdentifierStart(i) && !Character.isAlphabetic(i))
            System.out.println(i + " : " + (char) i);

печатает

36:

95: _

162:

163:

164:

165: ¥

1547: 46

2546: 47

2547: 55

2555: 01

2801: 65

3065: 47
3647:
27

6107: 25

8255: ‿

8256: ⁀

8276 :

8352:

8353:

8354:

8355:

8356:

8357:

8358:

8359:

8360:

8361:

8362:

8363:

8364:

8365:

8366:

8367: 8367:

8368: ₰

8369: ₱

8370: ₲

8371: ₳

8372: ₴

8373: ₵

8374: ₶

8375: ₷

8376: ₸

8377: ₹

43064: ꠸

65020: ﷼

65075: _

65076: ︴

65101: ﹍

65102: ﹎

65103: ﹏

65129: $

65284: $

65343: _

65504: ¢

65505: £

65509: ¥

65510: ₩