Character.digit()的含义及用法

来源:互联网 发布:战争程序员白濑 女主 编辑:程序博客网 时间:2024/06/03 23:03

最近在搜NFC的时候,无意中发现了这个方法,之前开发中一直没有遇到过,感觉很 好奇.

ava.lang.Character.digit()方法用法实例教程-在指定的基数返回字符ch的数值。

java.lang.Character.digit(char ch, int radix)方法 在指定的基数返回字符ch的数值。

如果基数是不在范围内MIN_RADIX≤基数≤MAX_RADIX或如果该值的通道是不是一个有效的数字在指定的基数-1,则返回。以下是如果至少有一个字符是一个有效的数字:

  • 方法isDigit为true的字符和Unicode字符的十进制数值(或分解的单字符)小于指定的基数。在这种情况下的十进制数字值被返回。

  • 该字符是一个大写拉丁字母'A'到'Z'和它的代码是小于基数+'A' - 10。在这种情况下,ch - 'A'+10返回。

  • 字符的小写拉丁字母'a'到'z'和它的代码小于radix+'A' - 10。在这种情况下,ch - 'a'+10返回。

  • 字符是一个全角大写拉丁字母A('\ uFF21')到Z('\ uFF3A“)和它的代码小于radix+'\ uFF21” - 10。在这种情况下,ch - '\ uFF21'+ 10返回。

  • 该字符是一个小写拉丁字母的全角('\ uFF41')到Z('\ uFF5A“),且它的代码小于radix+'\ uFF41” - 10。在这种情况下,ch - '\ uFF41'+10返回。



以下是java.lang.Character.digit()方法的声明
public
staticint digit(char ch,int radix)

其中:

1.ch - the character to be converted(要转换的字符)

2.radix - the radix(基数)

返回值

此方法返回由指定基数中的字符表示的数值。

异常:NA

运用的实际场合,有把一个拼接的16进制的String nfc 帧格式,转化为byte[]数组,需要没两位作为一个byte 计算出他的对应的byte值.

 public byte[] stringToBytes(String s) {    int len = s.length();    byte[] data = new byte[len / 2];    for (int i = 0; i < len; i += 2) {    data[(i / 2)] = ((byte) ((Character.digit(s.charAt(i), 16) << 4) + Character    .digit(s.charAt(i + 1), 16)));    }    return data;    }
参考文档:
1.http://www.tuicool.com/articles/JzIfYza