2014-10-28 62 views
0

我寫的代碼如何通過線從字符串中讀取數據線緩衝區和匹配另一個字符串

public class keys { 

    private static final String[] keyss = { 
     "HGDLV-KLLQC-DM3ON-MAUOX-FNQK5", 
     "HQKLD-NYRDL-NJXCV-BVCKF-NRKLC", 
     "LDFCV-BDJCQ-VMFQV-FNRKC-NFCFL" 
     //and many more 
    }; 

    public static String getKey(String key) { 
     boolean b = Arrays.asList(keyss).contains(key); 
     if (b == true) { 
      key = "approved"; 
     } else { 
      key = "unapproved"; 
     } 
     return key; 
    } 

,並得到批准的所有字符串,即使上述這麼想的匹配與用戶指定的字符串

+0

首先,所有班級名稱**必須**以大寫字母開頭。另外,用戶通過'key'參數傳遞什麼值? – 2014-10-28 13:33:23

+1

你的問題到底是什麼?該代碼似乎工作,因爲我期望.. – flob 2014-10-28 13:37:50

+0

除了是一個糟糕的設計,它確實工作。這裏沒有真正的問題。 – Bohemian 2014-10-28 13:44:59

回答

0

使用equals比較字符串。此外getKeys的()實現過於複雜,冗餘..考慮將其更改爲:

public class Keys { 
    private static final String[] keys = { 
     "HGDLV-KLLQC-DM3ON-MAUOX-FNQK5", 
     "HQKLD-NYRDL-NJXCV-BVCKF-NRKLC", 
     "LDFCV-BDJCQ-VMFQV-FNRKC-NFCFL" 
     //and many more 
    }; 

    public static String getKey(String key) { 
     for(String current : keys){ 
      if(current.equals(key)){ 
       return "approved"; 
      } 
     } 
     return "unapproved"; 
    } 
} 

沒有必要在你使用它的方式,也不是boolean開關使用Arrays ..

你可能想要查看this question來閱讀有關比較字符串的內容。

+1

對不起,但是在主程序中的方法沒有在課上有問題。我檢查了更多時間,發現課程代碼沒有問題。我讚賞優化的代碼。 – Chirag 2014-10-28 14:01:02

+0

你是最受歡迎的.. – Dropout 2014-10-28 17:03:34

相關問題