количество раз одно слово в предложении - PullRequest
0 голосов
/ 04 апреля 2011

Как я могу получить количество раз, когда в данном предложении есть одно слово ... 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 голосов
/ 05 апреля 2011

Вам нужно вызвать 'input.indexOf (word, fromIndex)' в цикле, чтобы найти строку. Каждый раз, когда вы вызываете эту функцию, и она возвращает что-то отличное от -1, увеличивается ваш счет. Когда он возвращает -1 или вы достигнете конца строки, остановитесь. fromIndex будет начинаться с 0, и его нужно будет увеличивать каждый раз, когда вы найдете строку по длине строки.

0 голосов
/ 04 апреля 2011

Разделить нельзя использовать? Это кажется довольно странным. Я укушу и просто скажу, что у нас недостаточно информации, чтобы дать правильный ответ.

  1. Что такое слово точно?
  2. Как следует учитывать символы / буквы?
  3. Когда закончено предложение?
  4. Должны ли дефисные слова быть особенными?
  5. У нас есть 1 предложение, и мы проверяем много слов?
  6. У нас есть 1 слово и много предложений?
  7. А как насчет совпадений подстрок (может против столовой)?

Учитывая то, что я могу догадаться, вы должны циклически проходить через «предложение», используя токен для ввода, строя «слова», пока не достигнете границы слова. Поместите найденные слова в HashMap (набранный на слове) и увеличьте значение для каждого слова, как вы его нашли.

0 голосов
/ 04 апреля 2011

Получите первую букву слова, данного пользователем. Далее посмотрите на предложение и найдите букву. Затем проверьте вторую букву слова и сравните ее со следующей буквой в предложении.Если снова то же самое, продолжите сравнение. Если не начать снова со следующей буквы.Каждый раз, когда вы получаете все буквы слова, а затем пробел, вы добавляете 1 к счетчику. Думаю, это сработает.

0 голосов
/ 04 апреля 2011

Взгляните на String.indexOf (String, int) .Находит следующую позицию параметра String, начиная с параметра int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...