有人可以给我简要说明这种方法和任何问题。我认为它输入的行少于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]);
}
}
}
答案 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
条文本。