Неподписанные типы в Java - PullRequest
1 голос
/ 15 марта 2012

Может кто-нибудь сказать, как преобразовать беззнаковый символ '0' в байт в Java?

Спасибо

Ответы [ 3 ]

3 голосов
/ 15 марта 2012

Вы можете скрыть это двумя способами в зависимости от того, что вы пытаетесь сделать

char ch = '0';
byte b = (byte) ch; // ASCII value of '0'

или

byte b = (byte) (ch - '0'); // numeric value of 0

или

byte b = (byte) Character.getNumericValue(ch); // numeric value.

Последний интересен тем, что он дает вам числовое значение всех символов, а не только '0' .. '9'

for (int ch = Character.MIN_VALUE; ch < Character.MAX_VALUE; ch++) {
    int value = Character.getNumericValue(ch);
    if (value > 99)
        System.out.println("The numeric value for " + (char) ch + " is " + value);
}

печать

The numeric value for ௱ is 100
The numeric value for ௲ is 1000
The numeric value for ፻ is 100
The numeric value for ፼ is 10000
The numeric value for Ⅽ is 100
The numeric value for Ⅾ is 500
The numeric value for Ⅿ is 1000
The numeric value for ⅽ is 100
The numeric value for ⅾ is 500
The numeric value for ⅿ is 1000
The numeric value for ↀ is 1000
The numeric value for ↁ is 5000
The numeric value for ↂ is 10000
0 голосов
/ 15 марта 2012

Вы можете напрямую ввести его следующим образом

byte bValue = (byte)c;

Где c - символ, который вы хотите преобразовать в байт.

0 голосов
/ 15 марта 2012

Зависит от того, как мы интерпретируем вопрос, я думаю; но просто часто лучше всего:

byte b = 0;

Это предполагает, что кавычки вокруг вашего 0 предназначены для акцента, а не для синтаксиса!

...