如何获得给定句子中单个单词的#次... 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循环我在用户再次给出的句子中找到用户给出的单词索引。我将这些索引存储在数组中。由于某种原因,这是行不通的..所以我找到了另一种实现它的方法。如果数组中该单词的索引彼此相等,则该单词仅退出一次。我有这个工作..但如果这个词不止一次出现,那就是创造问题..
答案 0 :(得分:0)
看看String.indexOf(String, int)。这将从参数int。
开始查找参数String的下一个位置答案 1 :(得分:0)
拆分无法使用?这看起来很奇怪。我会咬人,并简单地说我们没有足够的信息来给出正确答案。
鉴于我能猜到你应该循环通过“句子”通过构建“单词”来标记输入,直到你达到单词边界。将找到的单词放入HashMap(键入单词)并在找到每个单词时递增值。
答案 2 :(得分:0)
获取用户给出的单词的第一个字母。接下来查看句子并找到该单词。然后检查单词的第二个字母并将其与句子中的下一个字母进行比较。如果它再次继续比较。如果没有从下一个字母再次开始。每次你得到单词的所有字母,然后你得到一个空格,你就把1加到一个计数器上。认为这样可行。
答案 3 :(得分:0)
您需要在循环中调用'input.indexOf(word,fromIndex)'来查找字符串。每次调用此函数时,它返回-1以外的值,递增计数。当它返回-1或你到达字符串停止的末尾。 fromIndex将从0开始,每次根据字符串的长度找到一个字符串时,都需要递增。