【发布时间】:2011-04-03 23:15:23
【问题描述】:
如何获得给定句子中单个单词出现的次数。无法使用 String.split。我真的不需要代码。我只需要一个想法就可以开始..
package exam2;
import java.util.Arrays;
public class Problem2 {
/**
* @param args
*/
public static String input, word, a, b, c;
public static int index;
public static void Input() {
System.out.println("Enter Sentence: ");
input = IO.readString();
System.out.println("Enter Word: ");
word = IO.readString();
}
public static void Calc() {
Input();
index = input.indexOf(word);
int[] data = new int[input.length()];
data[0] = index;
while (index >= 0) {
System.out.println("Index : " + index);
for (int i = 1; i < data.length; i++) {
data[i] = index;
}
index = input.indexOf(word, index + word.length());
}
int count = 0;
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data.length; j++) {
if (data[i] == data[j]) {
a = input.substring(data[i], data[i] + word.length());
}
else if (data[i] != data[j]) {
b = input.substring(data[i], data[i] + word.length());
c = input.substring(data[j], data[j] + word.length());
}
}
}
if (a.equalsIgnoreCase(word)) {
count++;
}
System.out.println(count);
}
public static void main(String[] args) {
Calc();
}
}
使用 while 循环,我在用户再次给出的句子中找到用户给出的单词索引。我将这些索引存储在数组中。由于某种原因,它不起作用..所以我找到了另一种实现它的方法。如果该单词在数组中的索引彼此相等,则该单词仅退出一次。我已经让这个工作了..但是如果这个词不止一次出现,那就是造成问题..
【问题讨论】: