CodeGym /Java Blog /Toto sisi /Java 將 Char 轉換為 Int 實例
John Squirrels
等級 41
San Francisco

Java 將 Char 轉換為 Int 實例

在 Toto sisi 群組發布
用戶從鍵盤輸入的符號信息通常需要轉換為數字,或者程序員應該從中獲取數字。Java 中有一些方法可以做到這一點。在本文中,我們將找出幫助我們將 char 值轉換為 int 值的方法。

隱式類型轉換

類型轉換是將一種數據類型的值轉換為另一種數據類型的值的過程。類型轉換可以是手動的,也可以是自動的,具體取決於類型。類型應該兼容。在 Java 中,我們有兩種類型的類型轉換,顯式和隱式。只有當我們將變量從“較大”類型轉換為“較小”類型(例如,從intlong). 如果我們想將一個 char 類型的變量轉換為 int 數據類型,通常我們需要從 ASCII 表中獲取它的等效值。每個可以數字輸入的字母表或符號都有一個對應的唯一整數。例如,字母表“A”的 ASCII 代碼為 65。通過類型轉換,我們強制將字符值轉換為其等效的 ASCII 整數代碼。這是我們使用類型轉換的 Java char 到 int 示例。

Java char 到 int 示例(使用類型轉換)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
輸出是:
'A' 的 ASCII 值是 65 'a' 的 ASCII 值是 97

顯式類型轉換

正如我們在上面看到的,在 char 到 int 轉換的情況下,沒有必要顯式地這樣做,因為 2 個字節用於存儲 char,而 4 個字節用於存儲 int。即int類型是“大”。儘管如此,作為練習,我們可以將 char 變量顯式轉換為整數。對於此操作,我們在括號中提到 (int)。

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
輸出是:
'A' 的 ASCII 值是 65

使用 getNumericValue()

getNumericValue()的工作方式類似於類型轉換,但它不是遵循 ASCII 表,而是遵循 Unicode 編碼標準。ASCII 只能表示一組特定的符號和字符,例如拉丁字母(加上一些國家字母符號)、數字、標點符號和控製字符。Unicode 包含超過一百萬個值,其中包含世界上每種語言的字母和符號。例如,A在Unicode中的值為\u0041,相當於數值10。如果該字符沒有數值,則該方法返回-1。使用此方法可以方便地返回非負整數。

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
輸出是:
'7' 的 Unicode 值為 7 'A' 的 Unicode 值為 10 '*' 的 Unicode 值為 -1

使用 ParseInt()

ParseInt()是另一種將 char 轉換為 int 的方法。它還廣泛用於在其他數字數據類型(如浮點數、雙精度數和長整型)之間進行交叉轉換。ParseInt()需要至少一個參數,最多兩個參數。第一個參數是我們要轉換的值的變量名。第二個參數是基數,它指的是十進制、八進制、十六進制等的基值。由於ParseInt()具有轉換數據類型的能力,同時考慮到數字系統,它是轉換“數字”的最佳選擇” 在 Java 中將 char 轉換為 int。如果要使用此方法,請牢記兩點。 解析整數()方法只接受 String 參數,因此您應該首先將 char 轉換為 String(使用String.valueOf)。您不能使用parseInt()轉換字母表或其他符號,但存儲在 char 數據類型中的數值除外。如果您輸入非數字值,則會出現錯誤。這是一個 Java 示例:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
輸出是:
7
讓我們嘗試使用 parseInt 噸非數字值:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
輸出是:
線程“main”中的異常 java.lang.NumberFormatException:對於輸入字符串:“q”在 java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) 在 java.base/java.lang.Integer.parseInt (Integer.java:652) 在 java.base/java.lang.Integer.parseInt(Integer.java:770) 在 charToInt.ValueOf.main(ValueOf.java:6)

減去'0'

有一種非常簡單的方法可以將字符轉換為整數。為此,只需從字符中減去字符“0”的 ASCII 值即可。例如,要從字符“7”獲取 int 7:

int intValue = '7'-' 0 ';
請注意,這適用於專門為整數字符獲取 int 值!例如,如果從“A”中減去“0”,該方法將只返回零的 ASCII 代碼與字母 A 之間的差異。這是一個示例。

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
輸出是:
7 7 17 * -6

結論

如果您需要在 Java 中將 char 轉換為 int,請使用以下方法之一:
  • 隱式類型轉換 //獲取 ASCII 值
  • 字符.getNumericValue()
  • Integer.parseInt() //與 String.valueOf() 配對)
  • 減去“0”//僅適用於整數數值
您還可以進行顯式類型轉換。然而,這是一個多餘的操作:它不是必需的,但只適用於 Java。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION