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
廣告

© . All rights reserved.