2014-10-28 61 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

相关问题