【问题标题】:processing/Java: two outputs from one arraylist处理/Java:来自一个数组列表的两个输出
【发布时间】:2017-01-06 15:01:02
【问题描述】:

我想有两个输出,因为如果我输入“ora”,我希望它输出两个字符串中的“orange”和“orange juice”,但你会怎么做?

class searcher {
      ArrayList<String> toBecompared= new ArrayList<String>(Arrays.asList("orange", "orange juice", "apples", "cola", "soda"));
      void search() {
        String[] words = {text}; 
        // text is a user input
        // for loop test for if the "list" contains "text" (user input)
        for (int i = 0; i < toBecompared.size(); i++) {
          for (int w = 0; w < text.length(); w++) {
            try { 
              if (toBecompared.get(i).contains(words[w])) {
                println(words[w] +"  " + toBecompared.get(i));
              }
            }
            catch(Exception a) {
            }
          }
        }
      }
    }

【问题讨论】:

标签: java arraylist output processing


【解决方案1】:

我找到了一种方法,但我不确定这是否是最好的方法:P

class searcher {
  ArrayList<String> toBecompared= new ArrayList<String>(Arrays.asList("orange", "orange_juice", "apples", "cola", "soda"));
  String comparing ="orange orange_juice apples cola soda";
  String[] splited = comparing.split("\\s+");
  String compared1;
  String compared2;

  boolean True = false;

  void search() {
    String[] words = {text}; // text is a user input
    for (int i = 0; i < toBecompared.size(); i++) {
      for (int w = 0; w < text.length(); w++) {
        try { 
          if (toBecompared.get(i).contains(words[w])) {
            //println(words[w] +"  " + toBecompared.get(i));

            if (True == true) {
              compared2 = splited[i];
              True = false;
            } else {
              compared1 = splited[i];
              True = true;
            }
          }
          println(compared1);
          println(" ");
          println(compared2);
        }

        catch(Exception a) {
        }
      }
    }
  }
}

【讨论】:

  • 我建议创建一个List&lt;String&gt;,遍历您的输入,如果匹配则将其添加到列表中。在循环结束时,您可以对列表执行任何操作。如果你只想要两件东西,只打印前两件(当然,检查你至少有两件)。另外,boolean True = false; 让我的大脑受伤:-)
  • @Lampen 感觉就像您在尝试实现类似自动完成的功能。如果是这样,您应该查看Levenshtein distance
  • 出于对 Reas 的热爱,永远不要使用空的异常块。至少在里面打个电话给a.printStackTrace()
  • @George Profenza,是的,这就是我想要做的,非常感谢你:D
  • @Kevin Workman 我对编程很陌生,所以非常感谢,我不知道那个命令 :)
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 2020-08-21
  • 1970-01-01
  • 2017-01-14
相关资源
最近更新 更多