今天早上我感到好奇,如果有人有更好的方法来做这件事,我在徘徊

if(TAG_PLAY.equalsIgnoreCase(e.getActionCommand())
   ||TAG_PASSWORD.equalsIgnoreCase(e.getActionCommand())
   ||...
){


我预感可以通过做类似的事情来改善
创建1个大字符串并在其中寻找e.getActionCommand()
但我不知道这是否会更有效

注意:这与getActionCommand无关,我对逻辑,性能以及执行相同操作的新方法/模式完全感兴趣。



编辑:我不考虑大小写的辩论^^



编辑:

这个怎么样:

s = TAG_PLAY+","+TAG_PASSWORD;
//compareToIgnoreCase is not optimal since it will go through all the String
    if(0!=s.compareToIgnoreCase(anotherString)){

最佳答案

您是否考虑过使用Set.contains(Object)?

例如:

  Set<String> cases = new HashSet<String>();
  cases.add( TAG_PLAY.toLowerCase() );
  cases.add( TAG_PASSWORD.toLowerCase() );

  ...
  if ( cases.contains( e.getActionCommand().toLowerCase() ) {
  ...

09-06 04:29