Java - Character digit() 方法



Java 的 Character digit() 方法用于在指定的基数中确定字符的数值位置。

基数定义为数字系统中存在的唯一数字(包括零)的数量。最常见的基数是 10,代表十进制系统 (0-9)。

如果至少满足以下条件之一,则字符为有效数字:

  • 该字符的 isDigit 方法为真,并且该字符的 Unicode 十进制数字值(或其单字符分解)小于指定的基数。在这种情况下,将返回十进制数字值。

  • 该字符是大写拉丁字母 'A' 到 'Z' 之一,并且其代码小于基数 + 'A' − 10。在这种情况下,将返回 ch − 'A' + 10。

  • 该字符是小写拉丁字母 'a' 到 'z' 之一,并且其代码小于基数 + 'a' − 10。在这种情况下,将返回 ch − 'a' + 10。

  • 该字符是全角大写拉丁字母 A ('\uFF21') 到 Z ('\uFF3A') 之一,并且其代码小于基数 + '\uFF21' − 10。在这种情况下,将返回 ch − '\uFF21' + 10。

  • 该字符是全角小写拉丁字母 a ('\uFF41') 到 z ('\uFF5A') 之一,并且其代码小于基数 + '\uFF41' − 10。在这种情况下,将返回 ch − '\uFF41' + 10。

语法

以下是 Java Character digit() 方法的语法

public static int digit(char ch, int radix)
(or)
public static int digit(int codePoint, int radix)

参数

  • ch − 要转换的字符

  • codePoint − 要转换的字符(Unicode 代码点)

  • radix − 基数

返回值

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

获取给定基数的 char 的数值示例

以下示例显示了 Java Character digit(char ch, int radix) 方法的用法。在此示例中,我们使用字符初始化了两个 char 变量,然后使用 digit() 获取与基数 2 和 10 对应的数值,并打印结果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create 2 character primitives ch1, ch2
      char ch1, ch2;

      // assign values to ch1, ch2
      ch1 = '9'; //exceeds MAX_RADIX
      ch2 = '5';

      // create 2 int primitives i1, i2
      int i1, i2;

      // assign numeric value of ch1, ch2 to i1, i2 using radix
      i1 = Character.digit(ch1, 2);
      i2 = Character.digit(ch2, 10);
      String str1 = "Numeric value of " + ch1 + " in radix 2 is " + i1;
      String str2 = "Numeric value of " + ch2 + " in radix 10 is " + i2;

      // print i1, i2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Numeric value of 9 in radix 2 is -1
Numeric value of 5 in radix 10 is 5

获取给定基数的十六进制 char 的数值示例

在此示例中,我们声明并初始化一个包含有效代码点值的 int 变量和一个包含有效 char 值的 char 变量。int 变量被类型转换为 char 值并作为参数传递给方法;而 char 值按原样传递。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {
      int ch1;
	   char ch2;
      ch1 = 0x0012; //exceeds MAX_RADIX
      ch2 = '5';
      int i1, i2;
      i1 = Character.digit((char)ch1, 10);
      i2 = Character.digit(ch2, 16);

      // print i1, i2 values
      System.out.println("Numeric value of " + ch1 + " in radix 10 is " + i1);
      System.out.println("Numeric value of " + ch2 + " in radix 16 is " + i2);
   }
}

输出

编译并运行程序后,将获得以下输出:

Numeric value of 18 in radix 10 is -1
Numeric value of 5 in radix 16 is 5

获取给定基数的十六进制 char 的数值示例

以下示例显示了 Java Character digit(char ch, int radix) 方法的用法。在此示例中,我们使用十六进制值初始化了两个 char 变量,然后使用 digit() 获取与基数 2 和 10 对应的数值,并打印结果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create 2 int primitives cp1, cp2
      int cp1, cp2;

      // assign values to cp1, cp2
      cp1 = 0x0034;
      cp2 = 0x004a;

      // create 2 int primitives i1, i2
      int i1, i2;

      // assign numeric value of cp1, cp2 to i1, i2 using radix
      i1 = Character.digit(cp1, 8);
      i2 = Character.digit(cp2, 8);
      String str1 = "Numeric value of cp1 in radix 8 is " + i1;
      String str2 = "Numeric value of cp2 in radix 8 is " + i2;

      // print i1, i2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Numeric value of cp1 in radix 8 is 4
Numeric value of cp2 in radix 8 is -1

获取给定基数的类型转换 char 的数值示例

在此示例中,我们声明并初始化一个 char 值,并在类型转换后将其作为参数传递给方法。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {
      char ch1; 
      int ch2;
      ch1 = '8';
      ch2 = 0x0064;
      int i1, i2;
      i1 = Character.digit((int)ch1, 10);
      i2 = Character.digit(ch2, 16);

      // print i1, i2 values
      System.out.println("Numeric value of " + ch1 + " in radix 10 is " + i1);
      System.out.println("Numeric value of " + ch2 + " in radix 16 is " + i2);
   }
}

输出

以上代码的输出显示为:

Numeric value of 8 in radix 10 is 8
Numeric value of 100 in radix 16 is 13
java_lang_character.htm
广告