Java #一句话中一个单词的次数
我怎样才能知道一个单词在一个给定句子中出现的次数。。无法使用String.split。。我真的不需要代码。我只是需要一个开始的想法Java #一句话中一个单词的次数,java,string,Java,String,我怎样才能知道一个单词在一个给定句子中出现的次数。。无法使用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;
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();
}
}
package exam2;
导入java.util.array;
公共类问题2{
/**
*@param args
*/
公共静态字符串输入,字,a,b,c;
公共静态int索引;
公共静态无效输入(){
System.out.println(“输入句子:”);
输入=IO.readString();
System.out.println(“输入单词:”);
word=IO.readString();
}
公共静态无效计算(){
输入();
索引=输入。indexOf(单词);
int[]data=newint[input.length()];
数据[0]=索引;
而(索引>=0){
System.out.println(“索引:”+Index);
对于(int i=1;i
使用while循环,我再次在用户给出的句子中找到用户给出的单词索引。。我将这些索引存储在数组中。由于某种原因,这是行不通的。。所以我找到了另一种实现方法。如果该单词在数组中的索引是彼此相等的,则该单词只存在一次。我得把这件事做好。。但是,如果单词不止一次出现,就会产生问题。请查看。这将查找参数字符串的下一个位置,从参数int开始。无法使用拆分?这似乎很奇怪。不过我会咬一口,简单地说我们没有足够的信息来给出正确的答案
根据我的猜测,您应该通过构建“单词”来循环“句子”标记化输入,直到您到达单词边界。将找到的单词放入HashMap(键入单词),并在找到单词时增加每个单词的值。获取用户给出的单词的第一个字母。然后查看句子并找到字母。然后检查单词的第二个字母,并将其与句子中的下一个字母进行比较。如果相同,则继续比较。如果不相同,则从下一个字母开始。每次你得到单词的所有字母,然后在计数器上加一个空格。你认为这会起作用。你需要在循环中调用'input.indexOf(word,fromIndex)'来查找字符串。每次调用此函数时,它都会返回非-1的值,从而增加您的计数。当它返回-1或到达字符串结尾时停止。fromIndex将从0开始,每次找到字符串时都需要按字符串的长度递增。1。一个单词可以是用户输入的任何单词。我必须检查一下,看看是否是用户输入的句子,以及有多少次。。2.只有字母,没有符号。用户会给出一个正常的句子和一个正常的单词。如果您能看一下并提供任何建议,我会非常感激。我在上面的代码中使用了这一点,但仍然有一个问题我无法解决