2012-02-21 17 views
10

Каков наилучший способ удалить первое слово из строки в Java?Удалить первое слово из строки в Java

Если у меня есть

String originalString = "This is a string";

Я хочу удалить первое слово из нее и в виде эффекта двух строк -

removedWord = "This" 
originalString = "is a string; 

ответ

27

Простой.

String o = "This is a string"; 
System.out.println(Arrays.toString(o.split(" ", 2))); 

Выход:

[This, is a string] 

РЕДАКТИРОВАТЬ:


В строке 2 ниже значения сохраняются в массиве arr. Получите доступ к ним, как к обычным массивам.

String o = "This is a string"; 
String [] arr = o.split(" ", 2); 

arr[0] // This 
arr[1] // is a string 
+0

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

+0

На самом деле, мне понравился ваш первый ответ лучше. Println только делает его более расплывчатым. –

+1

Я не думаю, что это будет необходимо. Просто ищем ЛУЧШИЙ способ сделать эту простую операцию на Java, поскольку вы можете видеть, что было несколько разных ответов. –

0

Вы можете проверить, где это первый космический характер и индивидуальный строка.

String full = "Sample Text"; 
String cut; 
int pointToCut = full.indexOf(' '); 

if (offset > -1) 
{ 
    cut = full.substring(space + 1); 
} 
-1

Вы можете использовать класс StringTokenizer.

3

Вы можете использовать substring

removedWord = originalString.substring(0,originalString.indexOf(' ')); 
originalString = originalString.substring(originalString.indexOf(' ')+1); 
1

Попробуйте это с помощью индекса вар, я думаю, что это довольно эффективно:

int spaceIdx = originalString.indexOf(" "); 
String removedWord = originalString.substring(0,spaceIdx); 
originalString = originalString.substring(spaceIdx); 

До JDK 1.7, используя ниже метод может быть более эффективным, особенно если вы используют длинную строку (см. это article).

originalString = new String(originalString.substring(spaceIdx)); 
2

Для немедленного ответа вы можете использовать это:

removeWord = originalString.substring(0,originalString.indexOf(' ')); 
originalString = originalString.substring(originalString.indexOf(' ')); 
0

также вы можете использовать это решение:

static String substringer(String inputString, String remove) { 
    if (inputString.substring(0, remove.length()).equalsIgnoreCase(remove)) { 
     return inputString.substring(remove.length()).trim(); 
    } 
    else { 
      return inputString.trim(); 
    } 
} 

Пример: подстрока («Это строка», «Это»);

3

Это, безусловно, хорошее решение

String originalString = "This is a string"; 
    originalString =originalString.replaceFirst("This ", ""); 
+4

Не тот случай, когда вы не знаете, что такое первое слово. –

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