簡體   English   中英

投射數組的特定元素 - java

[英]Casting a specific element of an array - java

我有一個數組:

String letters [] = {a, b, c, d, e};

我可以投射一個特定的元素讓我們說 "a" 嗎? 我想獲得它的 ascii 值,所以我這樣做了,但它不起作用:

for (int i = 0; i < letters.length; i++) {
    Integer iDecimal = (int) a[0];    // the a[0] is wrong!!

    System.out.print(iDecimal);
}

關於如何在這種情況下投射的任何想法?

您正在嘗試投射不存在的 [0],要訪問您的數組,您需要執行字母 [0],然后嘗試使用它。 我建議將數組的類型更改為 char 然后將其強制轉換,您不能使用 String 來做到這一點。

將數組聲明為對象數組,但請注意,這是一種糟糕的編碼風格,因為您在一個數組中混合了不同的類型。

Object letters [] = {5, "b", 'c'};

對象數組包含一個整數、一個字符串和一個字符,然后您可以遍歷該數組並測試您擁有的對象類型。 整數元素被自動裝箱為整數對象。

但是我再次不建議這樣做,因為元素測試很昂貴。

for (int i = 0; i < letters.length; i++) {
    if (a[i]) instanceof Integer)
      Integer iDecimal = (Integer) a[i];
}

假設您只需要數組中每個字符串中第一個字符的 ASCII 代碼,那么您可以訪問該字符,然后將其轉換為 int。

for (int i = 0; i < letters.length; i++) {
    int iChar = (int) letters[i][0];

    System.out.print(iChar);
}

letters[i]是字母數組中的第i個字符串。

letters[i][0]是字母數組中第i個字符串的第一個字符,其類型為char

(int)letters[i][0]是等效於字母數組中第i個字符串的第一個字符的整數值。

嚴格來說,這將給出字符串中的第一個 UTF-16 字,但對於 <127 的值,它將與 ASCII 值相同。

整數不是十進制值,所以不要稱它們為小數。 BigDecimal 類型用於十進制值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM