Java #一句话中一个单词的次数

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;

我怎样才能知道一个单词在一个给定句子中出现的次数。。无法使用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();  
    }    
}
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开始。

无法使用拆分?这似乎很奇怪。不过我会咬一口,简单地说我们没有足够的信息来给出正确的答案

  • 一个词到底是什么
  • 应如何考虑符号/字母
  • 一个句子什么时候完成
  • 连字符的单词应该是特殊的吗
  • 我们有一个句子,而且我们测试了很多单词吗
  • 我们有一个单词和多个句子吗
  • 子串匹配(can vs食堂)如何

  • 根据我的猜测,您应该通过构建“单词”来循环“句子”标记化输入,直到您到达单词边界。将找到的单词放入HashMap(键入单词),并在找到单词时增加每个单词的值。

    获取用户给出的单词的第一个字母。然后查看句子并找到字母。然后检查单词的第二个字母,并将其与句子中的下一个字母进行比较。如果相同,则继续比较。如果不相同,则从下一个字母开始。每次你得到单词的所有字母,然后在计数器上加一个空格。你认为这会起作用。

    你需要在循环中调用'input.indexOf(word,fromIndex)'来查找字符串。每次调用此函数时,它都会返回非-1的值,从而增加您的计数。当它返回-1或到达字符串结尾时停止。fromIndex将从0开始,每次找到字符串时都需要按字符串的长度递增。

    1。一个单词可以是用户输入的任何单词。我必须检查一下,看看是否是用户输入的句子,以及有多少次。。2.只有字母,没有符号。用户会给出一个正常的句子和一个正常的单词。如果您能看一下并提供任何建议,我会非常感激。我在上面的代码中使用了这一点,但仍然有一个问题我无法解决