方法的简要说明,我的java生锈了

时间:2012-11-28 20:45:25

标签: java

有人可以给我简要说明这种方法和任何问题。我认为它输入的行少于5个单词并在制表符,换行符等上拆分行,然后进行比较以找到输入行中单词的重复。

public static void findNeedles(String haystack, String[] needles){
  if(needles.length > 5){
      System.err.println("Too many words!");
  }

  else{
      int[] countArray = new int[needles.length];
      for(int i = 0; i < needles.length; i++){
          String[] words = haystack.split("[ \"\'\t\n\b\f\r]", 0);
          for(int j = 0; j < words.length; j++){
              if(words[j].compareTo(needles[i]) == 0){
                  countArray[i]++;
        }
    }
      }
      for (int j = 0; j < needles.length; j++) {
          System.out.println(needls[j] + ": " + countArray[j]);
      }
  }
}

3 个答案:

答案 0 :(得分:3)

你的函数有两个参数,haystack一个字符串,needles一个字符串数组。

首先检查needles的大小是否大于5.如果是,则打印出“错误”并随后退出。

如果没有,它会将haystack字符串拆分为多个字符(包括单引号和双引号,制表符,换行符,字边界,换页符和回车符)到一个名为{{1 }}

将每个“needle”(words数组的元素)与needles数组的每个元素进行比较,如果遇到“needle”作为words数组的元素,相应针的“计数器”递增。

搜索后,每个针都会显示在大海捞针中的次数。

然后退出该功能。

答案 1 :(得分:1)

它需要两个输入,一个String和一个最多包含5个字符串的数组。

它查看String,将每个单词与数组中的每个单词进行比较,并计算匹配。

它打印出在String中找到数组中每个单词的次数。

答案 2 :(得分:0)

该方法计算“haystack”文本中“needle”字数,最多可查找5个字。

您可以改进的一件事是将文本的分割移动到外部循环之外。

另一种可能性是通过使用针作为分隔符来分割干草堆,从而完全摆脱内部循环,为您提供count + 1条文本。