C# вопрос: мне нужно искать назад на строку, используя LastIndexOf() Строка в вопросе «Южная Дакота 1040» Нужно разделить имя состояния от показателя 1040 системы. Я могу получить «1040» часть строки сам по себе, но не могу получить имя состояния сам по себе. Нужно идти назад, так как в строке есть два пробела. Есть ли лучший способ сделать это, чем то, на что я смотрю?LastIndexOf() метод
ответ
Не обращаясь к CodeFreak, логика заключается в том, чтобы урезать вашу строку в строке foreach и concatenate, найденной в ячейке/списке, большей, чем позиция [0]/[1]. Этого будет достаточно для вас?
Используйте LastIndexOf
, чтобы получить последнее пространство. Затем разделите строку на две части, вы можете сделать это, используя метод SubString
.
str.SubString(0, str.LastIndexOf(' ')); //this gets you "South Dakota"
Обязательно обрабатывать, когда LastIndexOf
возвращается -1.
+1 при обработке -1. –
Thx, это то, что я искал. –
var test = "South Dakota 1040";
var state = test.Remove(test.LastIndexOf(" "));
string replaceContent = "1040";
string content = "South Dakota 1040";
string result = content.Replace(replaceContent, "").Trim();
OP не совсем ясна, но я думаю, что цель состоит в том, чтобы избавиться от всего после последнего пробела. –
Есть много способов кожи кошки в разработке программного обеспечения (обратите внимание, у меня нет никаких дурных чувств по отношению к кошкам или любому другому виду животный) :) из них будут работать, я предпочитаю регулярные выражения вариантов, если у вас есть конкретный образец, на который вы можете ориентироваться, но это только я :)
// our string
string x = "South Dakota 1040";
x.Substring(0, x.LastIndexOf(' '));
// this basically does the same as above, but removes anything with a space and numbers
Regex.Replace(x, @"\s\d+", string.Empty);
// this is simmilar to regex above, though you have to watch out for no match cases
Regex.Match(x, @".*?(?=\s\d+)").Value;
- 1. Обратный lastIndexOf
- 2. JavaScript LastIndexOf)
- 3. разница между LastIndexOf ('строка') против LastIndexOf ('строка') OrdincalComparison
- 4. LastIndexOf для URL
- 5. Lastindexof() не работает
- 6. Javascript LastIndexOf не работает
- 7. TextBox Indexof и LastIndexOf
- 8. Получение LastIndexOf на раскрывающийся
- 9. C# lastindexof исключение исключения
- 10. Метод ArrayList «lastIndexOf» возвращает -1, когда элемент существует в ArrayList
- 11. Невозможно понять, как работает этот пример. lastIndexOf() Метод
- 12. Arraylist indexOf и lastIndexOf подстроки
- 13. IndexOf и LastIndexOf в Javascript
- 14. Использование вызова Underscore.js с lastIndexOf
- 15. IndexOf vs LastIndexOf Объект JavaScript
- 16. Java-like lastIndexOf в C++
- 17. lastIndexOf в JSTL или JSP
- 18. LastIndexOf в LINQ для лиц
- 19. indexOf и lastIndexOf в PHP?
- 20. Qt QString lastIndexOf не работает
- 21. Java: Regex выражение для LastIndexOf
- 22. Не удается получить LastIndexOf работать
- 23. Не удается добавить 1 к методу LastIndexOf()
- 24. Как получить lastIndexof с быстрым 2.0
- 25. Порт lastIndexOf код AS3 для PHP
- 26. LastIndexOf с использованием регулярных выражений в Elisp
- 27. Как передать новую строку вместо "," в LastIndexOf (",")?
- 28. ошибка подстроки с использованием LastIndexOf в Java
- 29. Использование LastIndexOf и подстроки с массивом
- 30. lastIndexOf(), чтобы найти последний буквенно-цифровой символ
Да, ** регулярное выражение **. У вашей строки ввода есть шаблон, например [state name] [space] [number]? –
", но не может получить имя состояния само по себе", что вы имеете в виду? почему бы не 'myString.Substring (0, myString.LastIndexOf (''))'? –
Попробуйте следующее: http: //stackoverflow.com/questions/7945531/remove-last-element-from-array – Sparky