句子中单个单词的次数

时间:2011-04-03 23:15:23

标签: 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;

    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循环我在用户再次给出的句子中找到用户给出的单词索引。我将这些索引存储在数组中。由于某种原因,这是行不通的..所以我找到了另一种实现它的方法。如果数组中该单词的索引彼此相等,则该单词仅退出一次。我有这个工作..但如果这个词不止一次出现,那就是创造问题..

4 个答案:

答案 0 :(得分:0)

看看String.indexOf(String, int)。这将从参数int。

开始查找参数String的下一个位置

答案 1 :(得分:0)

拆分无法使用?这看起来很奇怪。我会咬人,并简单地说我们没有足够的信息来给出正确答案。

  1. 究竟是什么词?
  2. 如何考虑符号/字母?
  3. 句子什么时候完成?
  4. 应该用刺耳的词来说是特别的吗?
  5. 我们有一句话,我们正在测试很多单词吗?
  6. 我们有1个字还有多个句子?
  7. 子串匹配怎么样(can vs canteen)?
  8. 鉴于我能猜到你应该循环通过“句子”通过构建“单词”来标记输入,直到你达到单词边界。将找到的单词放入HashMap(键入单词)并在找到每个单词时递增值。

答案 2 :(得分:0)

获取用户给出的单词的第一个字母。接下来查看句子并找到该单词。然后检查单词的第二个字母并将其与句子中的下一个字母进行比较。如果它再次继续比较。如果没有从下一个字母再次开始。每次你得到单词的所有字母,然后你得到一个空格,你就把1加到一个计数器上。认为这样可行。

答案 3 :(得分:0)

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