Два разных вида слеша в Java - PullRequest
0 голосов
/ 15 июня 2019

При работе с символами в кодировке Unicode в Java я использовал Normalizer, чтобы нормализовать его и преобразовать в строку.Ниже приведен код, который я использовал:

input = "¼";
input = Normalizer.normalize(input,Normalizer.Form.NFKD);

output: 1⁄4. 

Косая черта, которую использовал метод, была "⁄", чья кодировка Unicode \u2044, в отличие от обычной косой черты, которую я могу печатать с помощью клавиатурыкоторый "/" закодирован как \u002f.

В чем разница между ними и когда один должен использоваться поверх другого?

Заранее спасибо.

Ришит

Ответы [ 2 ]

4 голосов
/ 15 июня 2019

Unicode в наши дни содержит кучу вариаций общих не буквенных символов, и косые черты не являются исключением . (Это даже не все из них - ищите «солидус», чтобы получить больше.) У вас есть дробные черты (ваши), полные ширины, дробные черты (да, это отдельно от дробной части), толстые косые черты , очень толстые косые черты - список можно продолжить.

Хорошая новость заключается в том, что вы можете решить, какой слеш подходит для вашего контекста.

Если вы хотите нормализовать только потому, что вы не хотите, чтобы дроби отображались в одном символе, или вы хотите, чтобы все дроби отображались одинаково (очевидно, что в Юникоде не может быть символа для каждая возможная дробь), тогда использование этой дробной черты, вероятно, то, что вы хотите.

С другой стороны, если вы хотите нормализовать, потому что вы хотите уменьшить набор доступных символов до тех, которые можно легко набирать на стандартной клавиатуре, скорее всего, вам следует использовать стандартную косую черту.

1 голос
/ 16 июня 2019

Как отметил Майкл Берри, \u2044 - это символ дробной черты .

Это не просто косая черта, которая выглядит немного иначе;это имеет определенное поведение рендеринга.Начиная с используется спецификация Unicode, раздел 6.2, «Другие знаки пунктуации» :

Косая дробь. U + 2044 FRACTION SLASHмежду цифрами, чтобы сформировать числовые дроби, такие как 2/3 и 3/9.Стандартная форма дроби, построенная с использованием дробной черты, определяется следующим образом: любая последовательность из одной или нескольких десятичных цифр (Общая категория = Nd), за которой следует дробная черта, за которой следует любая последовательность из одной или нескольких десятичных цифр.Такая дробь должна отображаться как единица измерения, например, ³⁄₄ или image.Точный выбор отображения может зависеть от дополнительной информации о форматировании.

Если программное обеспечение для отображения не способно отобразить дробь на единицу, то оно также может отображаться в виде простой линейной последовательности в качестве запасного варианта (например,3/4).Если дробь должна быть отделена от предыдущего числа, то можно использовать пробел, выбирая соответствующую ширину (нормальная, тонкая, нулевая ширина и т. Д.).Например, 1 + THIN SPACE + 3 + FRACTION SLASH + 4 отображается как 1 ³⁄₄.

Лично я предпочитаю использовать дробную дробную черту, поскольку она делает дроби выглядящими лучше, например:они профессионально набраны.Но в некоторых контекстах лучше использовать косую черту в ASCII, например, моноширинный текст или желать вывода всего ASCII, или, как упоминал Майкл, ограничение текста символами, которые можно набирать на клавиатуре.

...