2016-12-12 4 views
-2

Я пытаюсь разработать программу, которая анализирует предложение с несколькими словами в строке.Поиск позиции слова в строке

Когда вводится слово в предложении, программа должна идентифицировать все позиции, которые это введенное слово встречается в строке. Так что, если у меня была строка:

Не спрашивай, что твоя страна может сделать для вас, но ЧТО МОЖНО СДЕЛАТЬ ДЛЯ ВАШЕЙ СТРАНЕ

И я вводится слово «страна» она должна вывести:

слово Страна находится в позиции: 5, 17

Я не совсем уверен, где я должен начать после создания строки

+3

Вы можете начать с чтения [JavaDoc из класса 'String'] (https://docs.oracle.com/javase/8/docs/api/java/lang/String.html), чтобы увидеть что он может сделать для вас. – Tom

+0

Это очень простая домашняя работа с множеством способов сделать это. Прочитайте 'String.indexOf()'. – user3437460

ответ

1

Пожалуйста, прочтите JavaDoc, приведенные в комментарии.

В принципе, если у вас есть String, вы можете выполнить операцию split по телефону split(" ") способ. Это разделит целую строку на массив String[]

Затем вы можете просто перебирать массив и печатать положение слова.

Помните: Операции по строке может быть выполнена различными способами

Рабочий пример:

public static void main(String[] args) { 
    String wholeString = "ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU BUT WHAT YOU CAN DO FOR YOUR COUNTRY"; 
    String[] justWords = wholeString.split(" "); 
    String searchString = "COUNTRY"; 

    for (int i = 0; i < justWords.length; i++) { 
     if (justWords[i].equals(searchString)) { 
      System.out.println("The word " + searchString + " is in the position: " + i); 
     } 
    } 
} 

Имейте в виду, что я рассчитываю, так как 0, так что позиция для слова СТРАНА будет в 4 и 16 вместо 5 и 17, но вы должны быть в состоянии приспособить его к вашим требованиям

Выход:

The word COUNTRY is in the position: 4

The word COUNTRY is in the position: 16

JavaDoc

Дополнительный пример, где строка и поиск является пользовательский ввод.

public static void main(String[] args) throws IOException { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("Enter word you are looking for"); 
    String searchString = br.readLine(); 

    String wholeString = "ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU BUT WHAT YOU CAN DO FOR YOUR COUNTRY"; 
    String[] justWords = wholeString.split(" "); 


    for (int i = 0; i < justWords.length; i++) { 
     if (justWords[i].equals(searchString)) { 
      System.out.println("The word " + searchString + " is in the possition: " + i); 
     } 
    } 
} 
+0

Есть ли способ проверить введенное пользователем слово? –

+0

Конечно, прочитайте ввод с консоли и поместите его в переменную String, чтобы сохранить его, затем перебрать и распечатать обратно пользователю :) Как читать с консоли: http://stackoverflow.com/questions/4644415/java -how-to-get-input-from-system-console –

+0

Я отредактировал свой ответ. Пожалуйста, примите его, если он соответствует вашим потребностям :) –