2012-02-03 38 views
1

我對switch-case語句有疑問。 這裏是我的代碼:如何切換案件的字符串執行?

String month = "April"; 
switch (month.toLowerCase()) { 
      case "january": 
       monthNumber = 1; 
       break; 
      case "february": 
       monthNumber = 2; 
       break; 
      case "march": 
       monthNumber = 3; 
       break; 
      case "april": 
       monthNumber = 4; 
       break; 

等..

我在此背景下3個問題:

1)當用的情況相比較一個月值的情況下,即「一」,案例 「February」..由編譯器正確使用以下內容? - month.equals(「case-value」)? - month == case-value?

2)又是區分值內部轉換爲的StringBuilder/StringStringBuffer或簡單地它們保持字符串對象??

3)如何我我可以知道這個從字節碼即用,我可以直接查看編譯器生成的代碼只是爲了找出事物內部的行爲沒有任何工具可用?

+0

請注意,在不區分大小寫的方式比較字符串的最快方法是使用equalsIgnoreCase ()不會創建一個新的String對象。打開字符串總是使用equals(),但可以進行較少的比較,因爲它首先比較hashCode。 – BladeCoder 2014-05-10 10:05:13

回答