2016-07-26 29 views
1

如何將具有ascii值或字符的盒切換成相同?具有字符和ASCII值的開關盒在java中表現相同

如何情況下轉換內部ASCII爲char或炭以ASCII

public class Rq200_150 { 

    public static void main(String[] args) { 

     for (Character cRef = 'A'; cRef < 'F'; cRef++) 
      switch (cRef) { 
      default: 
       System.out.println((char) ('a' + cRef - 'A')); 
       break; 
      case 'B': 
       System.out.println(cRef); 
       break; 
      case 68: 
       System.out.println(cRef); 
       break; 
      case 67: 
       System.out.println(cRef); 
      } 
    } 

} 
+0

問題是什麼?你能詳細說明嗎? – Thomas

+0

雖然我把案件68是ascii字符D它正在考慮作爲案件D ..所以我的問題是如何開關案件來知道68是D的ascii值...和我們對開關情況下,它然後如何接受68,67數例 –

+0

68提供CREF即字符D'的'unicode的(和ASCII)值和'char'可以轉換爲一個int:HTTP://文檔.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – Thomas

回答

1

基本上,char是在範圍內的無符號的整數0到65535(它的爲0xFFFF)

炭:炭數據類型是一個單一的16位Unicode字符。它的最小值爲'\ u0000'(或0),最大值爲'\ uffff'(或65,535)。 (從Here

打印出對應於該數字的Unicode字符,假設您的計算機支持Unicode。

值0到127(0x7f)對應於Unicode的原始前體(ASCII),0到255(0xff)是擴展的ASCII。

因此,因爲你的程序被設置爲「68」或「D」的情況,它將以同樣的方式讀取。

希望這回答這個問題

+0

是轉換,反之亦然? –

+0

或者覆羽字符只爲int ...即「d」爲68 ...不是68「d」 –

+0

是的,它是在轉換是雙向的 –

0

char原始實際上只是一個數字。 java vm將形式'x'的任何值轉換爲相應的數字,以進行任何類型的比較。因此,68 ='D',因此將其中任何一個放入switch語句中都會捕獲該場景。這就是爲什麼你可以在字符上進行數學運算;字符只是數字。

例如:

+0

是轉換反之亦然? –

+0

或者覆羽字符只爲int ...即「d」爲68 ...不是68「d」 –

+0

它會轉換到任何需要在這一點上。如果你打印出數字68,它只會打印出nunber,因爲它不知道你想要一個字符。你應該使用「char」而不是「Character」,你不需要對象版本,而且它更容易預測。 – TheNumenorean

0

二元數值提升是在某些運營商的操作數執行 數值比較運算符<,< =,>,和> =

如果任何操作數是一參考類型,它將經過拆箱 轉換(§5.1.8)。

加寬原語轉換(§5.1.2)被施加到轉換的任一個或 由下面的規則中指定的兩個操作數:

如果操作數的類型是雙,其他被轉換爲加倍。

否則,如果任一操作數的類型爲float,則另一個操作數將被轉換爲 以浮動。

否則,如果其中一個操作數的類型爲long,則另一個操作數將被轉換爲長整型 。

否則,兩個操作數都轉換爲int類型。

所以在這種情況下,它會被執行到int。

這是一個廣泛的話題。我建議您訪問oracle

+0

明白了..謝謝。 –