Как найти последнее слово внутри строки, разделенной знаком ? С#

Спасибо всем за помощь, с вашей помощью у меня все заработало.

Итак, я написал код, который извлекает первое слово из строки. Ниже мой код.

var LongString = "Hello World";
var firstWord = LongString.Substring(0, LongString.IndexOf(" "));

Этот код дает мне результат «Привет», однако, как я могу получить последнее слово из строки, если я не знаю последний индекс. Есть ли метод, с помощью которого я могу получить последний номер индекса, не вводя в него строку, которая в настоящее время находится в переменной LongString. Заранее спасибо.


person user9710070    schedule 27.04.2018    source источник
comment
В вашем примере, если вы ищете индекс " ", он будет таким же. Можете ли вы более подробно объяснить свои потребности?   -  person Paul Karam    schedule 27.04.2018
comment
Было бы разделение на космическую работу - тогда вы могли бы взять первый и последний элемент массива.   -  person PaulF    schedule 27.04.2018
comment
Что вы имеете в виду под задачей строки, которая в данный момент находится в переменной LongString?   -  person Tim Schmelter    schedule 27.04.2018
comment
Возможный дубликат Извлечь последнее слово из строки с помощью С#   -  person GSerg    schedule 27.04.2018
comment
@aponmene да, но если бы я использовал код, например, var firstWord = LongString.Substring(0, LongString.LastIndexOf()); вернет ли он ожидаемую мировую часть строки? Сорри, я совсем новичок в кодировании   -  person user9710070    schedule 27.04.2018


Ответы (4)


var lastWord = longString.Split(' ',
                                StringSplitOptions.RemoveEmptyEntries)
                         .Last();

Вот об этом.

person InBetween    schedule 27.04.2018
comment
Сохранение результата операции разделения позволит получить первое слово и последнее слово без необходимости в первой подстроке. - person PaulF; 27.04.2018
comment
@PaulF да, если вам понадобится обращаться к разным отдельным словам более одного раза, то кэширование результата Split является обязательным. - person InBetween; 27.04.2018

Просто используйте LastIndexOf.

const string hw = "Hello World";
var lastIndex = hw.LastIndexOf(" ");
Console.WriteLine(hw.Substring(lastIndex + 1));
person Fernando Callejon    schedule 27.04.2018

Если я правильно понял, вы ищете:

index = lastIndexLongString.LastIndexOf(" ");
var firstWord = LongString.Substring(index+1);
person apomene    schedule 27.04.2018

ответ с работающим исправлением: используйте ' ' вместо " " для функции разделения.

var splittedWord = LongString.Split(' ');
var firstWord = splittedWord.FirstOrDefault();
var secondWord = splittedWord.LastOrDefault();
person Deepak Tripathi    schedule 27.04.2018
comment
Я бы установил var firstWord = splittedWord[0], так как String.Split возвращает массив как минимум из 1 строки (даже если основная строка не содержит разделителя) (Справочник MSDN) - person Ivan García Topete; 27.04.2018