2016-07-05 2 views
-3

Напишите программу, которая просит пользователя ввести две строки и печатает количество раз, когда вторая строка появляется в первой строке. Например, если первая строка является «банан» и второй является «», программа печатает 2.Строка Java внутри строки

Ниже мой код до сих пор

public class Assignment4 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 

     Scanner answer = new Scanner(System.in); 

//Prompt the user to enter a string 
     System.out.println("Enter a word:"); 
     String input = answer.nextLine(); 

//Ask the user to enter a second String 
     //look at index method of string 
     System.out.println("Enter another word:"); 
     String input2nd = answer.nextLine(); 
     int counter = 0; 
     for(int i=0; i<input.length(); i++) { 
      if(input.charAt(i) == input2nd.charAt(0)) { 
       counter++; 

      } 
     } 
     System.out.println(input2nd + " appears " + counter + " times."); 

Когда я типа банан в первой строке, и вторая строка - «an», единственное, что появляется, - это номер 3, и это символ, который появляется 3 раза, но не два, как предполагается, только 2 «an»

+0

Используйте [indexOf] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf (java.lang.String,% 20int)) –

ответ

0

Рассмотрите этот трюк, который я изучил годами назад:

  1. заменить поиск слова в исходном слове по emptychars ...
  2. получить дифференциал между длиной и ... поиск символов и оригинал заменен
  3. разрыв, что на Лену из искомого слова ...

private static void searchString() { 
Scanner answer = new Scanner(System.in); 
// Prompt the user to enter a string 
System.out.println("Enter a word:"); 
String input = answer.nextLine(); 

// Ask the user to enter a second String 
// look at index method of string 
System.out.println("Enter another word:"); 
String input2nd = answer.nextLine(); 
String a = input.replace(input2nd, ""); 
int counter = (input.length() - a.length())/input2nd.length(); 
System.out.println(input2nd + " appears " + counter + " times."); 
} 

с входом банана и напечатает 2