2014-01-24 4 views
-1

У меня есть две строки: stringOne и stringTwo.Найдите индекс, где string1 содержит строку 2?

String stringOne = "JAVA"; 
String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE"; 

можно легко найти, если Java во второй строке (она), где как бы я индекс, где она начинается и заканчивается? Я хочу инициализировать начальную и конечную позиции в целых переменных: begPos = 14 и endPos = 18. Какой метод я мог бы использовать для этого?

противоположен, но у меня есть третья строка:

String stringThree = "       "; 

Это куча неиспользованного. Я хочу поставить «JAVA» там, в соответствии с ранее занятыми позициями. Я могу заменить части строки на другие части строки, но опять же я не уверен, как заменить определенную позицию. Конечный результат должен быть:

String stringThree = "    JAVA  "; 

Любые идеи?

+0

Использование метода String 'int indexOf (String)'. – AntonH

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html - знать, где искать (API) – user2864740

ответ

1

Вы можете использовать str.indexOf(substr), который возвращает индекс подстроки в str, и str.substring(start, end) методы:

общественности Строка подстрока (интермедиат beginIndex, INT ENDINDEX) возвращает новую строку это подстрока этой строки. Подстрока начинается с указанного beginIndex и продолжается до символа в index endIndex - 1. Таким образом, длина подстроки - endIndex-beginIndex.

Код:

public static void main(String[] args) 
{ 
    String stringOne = "JAVA"; 
    String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE"; 

    int begPos = stringTwo.indexOf(stringOne); 
    int endPos = begPos + stringOne.length(); 

    System.out.println(begPos + " " + endPos); 

    String stringThree = "......................"; 
    stringThree = stringThree.substring(0, begPos) + stringOne + stringThree.substring(endPos); 

    System.out.println(stringThree); 
} 

Вы хотели бы манипулировать start и end аргументы, передаваемые , чтобы получить ожидаемый результат.

3
String stringOne = "JAVA"; 
String stringTwo = "DJDFKWAUERHFGJAVAORKFLASOWE"; 
int begin=stringTwo.indexOf(stringOne); 
int end=begin+stringOne.length(); 
if(begin==-1){ 
    //not found 
} 
1

Если вы хотите изменить строку, используйте StringBuilder.

String str = "       "; 
String ins = "JAVA"; 
StringBuilder builder = new StringBuilder(str); 
String result = builder.replace(14, 18, ins).toString(); 
Смежные вопросы