2013-04-27 6 views
-5

Я хотел бы найти подстроку в строке в может происходить много раз, это может быть даже выглядеть следующим образом:Как найти вхождения подстроки в строке

Search for: aba 
Line: ababa 
Result: 2 

Я забыл, какие методы следует использовать.

+1

* «Я забыл, какие методы я должен использовать». * - Хорошо читайте javadocs. Вот для чего они нужны! –

+0

Является ли ваш результат предполагаемым последним индексом, на котором происходит подстрока? Сколько раз происходит строка? –

ответ

2
String s = "ababa", key="aba"; 
    int limit= s.length()-key.length(), count = 0; 
    for(int i=0; i<=limit; i++) { 
     int index = s.indexOf(key, i); 
     if(index!=-1) { 
      i=index+1; 
      count++; 
     } 
     else { 
      break; 
     } 
    } 
    System.out.println(count); 
0

Я думаю, вы могли бы использовать String.indexOf (String ул)

0

Используйте цикл для подсчета количества попадания String.indexOf(String str, int fromIndex) и выхода, когда он возвращается -1.

Используйте для второго параметра «двигаться вперед» в своей строке.

0

Вы можете использовать метод indexOf следующим образом:

String s = "ababa"; 
    String r = "aba"; 
    int count=0; 
    int startindex = s.indexOf(r); 
    while(startindex != -1) 
    { 
     count++; 
     startindex = s.indexOf(r,startindex+1); 
    } 

Значение count даст вам количество вхождений подстроки.

Надеюсь, это поможет.

Смежные вопросы