Удалить первое слово из строки в Java

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

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

String originalString = "This is a string";

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

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

person Jim_CS    schedule 21.02.2012    source источник


Ответы (9)


Простой.

 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
person Mob    schedule 21.02.2012
comment
Поскольку вопрос довольно простой, вам, вероятно, потребуется уточнить, как получить первую и вторую часть строки из возвращаемого массива. - person Jesse van Assen; 21.02.2012
comment
На самом деле мне больше понравился твой первый ответ. Печать только делает его более расплывчатым. - person Jesse van Assen; 21.02.2012
comment
Не думаю, что это будет необходимо, хе-хе. Просто ищу ЛУЧШИЙ способ выполнения этой простой операции на Java, как видите, было несколько разных ответов. - person Jim_CS; 21.02.2012
comment
@JohnMcDonald Для меня это достаточно просто. - person Mob; 21.02.2012
comment
Используйте \\s+, чтобы просмотреть все пробелы после слова как границу слова (определение границы слова и слова - это то, где это становится сложным, например, вы можете также включить запятую в смесь). - person Maarten Bodewes; 21.02.2012
comment
@Mob Я не голосовал против, потому что считаю ваше решение верным. Однако я понимаю парня, который это сделал. Действительно, за этот ответ в основном проголосовали, хотя он, вероятно, менее эффективен. - person alain.janinm; 30.12.2014

Это определенно будет хорошим решением

    String originalString = "This is a string";
    originalString =originalString.replaceFirst("This ", "");
person Yogesh    schedule 02.08.2013
comment
Не тот случай, когда вы не знаете, какое первое слово. - person MD. Mohiuddin Ahmed; 25.02.2014

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

removedWord = originalString.substring(0,originalString.indexOf(' '));
originalString = originalString.substring(originalString.indexOf(' ')+1);
person DonCallisto    schedule 21.02.2012

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

removeWord = originalString.substring(0,originalString.indexOf(' '));
originalString = originalString.substring(originalString.indexOf(' '));
person montardon    schedule 21.02.2012

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

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

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

originalString = new String(originalString.substring(spaceIdx));
person alain.janinm    schedule 21.02.2012

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

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

if ( offset > -1)
{
  cut = full.substring( space + 1);
}
person Ersel Aker    schedule 21.02.2012

String str = "This is a string";    

String str2=str.substring(str.indexOf(" "));
String str3=str.replaceFirst(str2, "");

replaceFirst и подстрока

person subodh    schedule 21.02.2012

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

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();
    }
}

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

person d3day    schedule 03.07.2013

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

person Martin    schedule 21.02.2012