Java - Character forDigit() 方法



Java 的 Character forDigit() 方法用于确定指定基数中特定数字的字符表示。

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

使用此方法的优势在于,它允许您生成并非真正“数字”的数字。例如,在十六进制数字系统中,'9' 之后的数字使用字符 'A' 到 'F' 表示。

语法

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

public static char forDigit(int digit, int radix)

参数

  • digit − 要转换为字符的数字。如果 0 ≤ digit < radix,则此参数有效。

  • radix − 基数。如果 MIN_RADIX ≤ radix ≤ MAX_RADIX,则此参数有效。

返回值

此方法返回指定基数中指定数字的 char 表示。一些特殊情况包括:

  • 如果 radix 的值不是有效的基数,或者 digit 的值不是指定基数中有效的数字,则返回空字符 ('\u0000')。

  • 如果 digit 小于 10,则返回 '0' + digit。否则,返回 'a' + digit − 10。

获取特定数字和给定基数的字符表示示例

以下示例显示了 Java Character forDigit() 方法的使用方法。我们创建了两个 int 变量并用 int 值初始化,然后使用 forDigit() 方法,我们检索了 10 和 16 基数的 char 表示,并打印了结果。

package com.tutorialspoint;

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

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

      // create 2 int primitives i1, i2 and assign values
      int i1 = 3;
      int i2 = 14;

      // assign char representation of i1, i2 to ch1, ch2 using radix
      ch1 = Character.forDigit(i1, 10);
      ch2 = Character.forDigit(i2, 16);
      String str1 = "Char representation of " + i1 + " in radix 10 is " + ch1;
      String str2 = "Char representation of " + i2 + " in radix 16 is " + ch2;

      // print ch1, ch2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

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

Char representation of 3 in radix 10 is 3
Char representation of 14 in radix 16 is e

获取超出数字和给定基数的字符表示示例

在此示例中,如果传递给方法的参数超过 MAX_RADIX,则返回值将为空字符。

package com.tutorialspoint;

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

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

      // create 2 int primitives i1, i2 and assign values
      int i1 = 15;
      int i2 = 20;

      // assign char representation of i1, i2 to ch1, ch2 using radix
      ch1 = Character.forDigit(i1, 10);
      ch2 = Character.forDigit(i2, 16);

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

输出

编译上述代码后,获得的输出为:

Char representation of 100 in radix 10 is 
Char representation of 150 in radix 16 is 

获取超出数字和给定基数的字符表示示例

负数不属于任何数字系统的类别,因为它在 MIN_RADIX 之前。因此,该方法返回空字符。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {
      char ch1, ch2;
      int i1 = -4;
      int i2 = -1;
      ch1 = Character.forDigit(i1, 10);
      ch2 = Character.forDigit(i2, 16);
      System.out.println("Char representation of " + i1 + " in radix 10 is " + ch1);
      System.out.println("Char representation of " + i2 + " in radix 16 is " + ch2);
   }
}

输出

执行上述代码后,获得的输出为:

Char representation of -4 in radix 10 is 
Char representation of -1 in radix 16 is 

我们可以看到负整数没有输出。

获取由 ASCII 值表示的数字和给定基数的字符表示示例

即使 '9' 之后的数字由字符 'a' 到 'f' 表示,这些字符的 ASCII 值也超出基数限制。因此,返回空字符。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {
      char ch1, ch2;
      int i1 = (int)'a';
      int i2 = (int)'f';
      ch1 = Character.forDigit(i1, 16);
      ch2 = Character.forDigit(i2, 16);
      System.out.println("Char representation of " + i1 + " in radix 16 is " + ch1);
      System.out.println("Char representation of " + i2 + " in radix 16 is " + ch2);
   }
}

输出

获得的输出如下:

Char representation of 65 in radix 10 is .
Char representation of 88 in radix 10 is .
java_lang_character.htm
广告