2013-05-23 2 views
0

У меня есть строки следующим образомНайти и заменить строку в Java

String str=" Hello World, Hello World, Hello"; 

Я хочу, чтобы заменить третий «Привет» «Привет» В Java. Есть ли способ, которым я могу коснуться только той части, которая мне нужна в String?

+10

При каких условиях вы хотите изменить «Привет» на «Привет»? Это всегда третий «Привет»? Всегда ли это «Привет»? – Craig

+0

Да, у вас должно быть правило. – acdcjunior

+1

Используйте 'indexOf' три раза, чтобы найти третий« Hello », а затем« подстроку »для создания обновленной строки. – Thilo

ответ

1

Ваша логика не совсем ясна, но в любом случае я считаю, что лучше всего использовать Pattern. Посмотрите на this tutorial.

0

Вот метод, который возвращает индекс го вхождения строки в другой строке:

/** 
* Returns the index of the nth occurrence of needle in haystack. 
* Returns -1 if less than n occurrences of needle occur in haystack. 
*/ 
public int findOccurrence(String haystack, String needle, int n) { 
    if (n < 1) { 
     throw new IllegalArgumentException("silly rabbit..."); 
    } 
    int count = 0; 
    int len = needle.length();  
    int idx = haystack.indexOf(needle); 
    while (idx != -1 && ++count < n) { 
     idx = haystack.indexOf(needle, idx + len); 
    } 
    return idx; 
} 

Остальное должно быть просто реализовать ....

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