2010-07-14 2 views
1

У меня есть строка, состоящая из нескольких сотен слов.Поиск слова - Строка Operationg или Linq

Как бы получить каждое «слово» (это также может быть одно число или пунктуация), и, поскольку каждое «слово» найдено, оно удаляется из строки.

Возможно ли это?

Пример:

Строка:

! "Это строка полна слов и букв, а также некоторые знаки препинания и num6er5"

Что касается алгоритма, то в этой строке имеется ровно 15 слов.

+0

Вы имеете в виду, что вы удаляете все реальные слова в строке, полной случайных букв? –

+4

предоставляют некоторые данные образца! –

+0

+1. Глупый, потому что я не так изначально. Я только что добавил пример. – 2010-07-14 09:44:46

ответ

2

То, что вы пытаетесь сделать, известно как токенизация.

В C# функция Split() строки работает очень хорошо. Если он используется как в коде Niedermair без каких-либо параметров, он возвращает массив строк, разделенных (разделенных?) Любыми пробелами вроде:

«У меня есть пробелы» -> {«I», «есть», «пробелы» "}

Вы также можете указать любые символы для разделения на параметр Split() (например, ',' или ';' для обработки файлов csv).

Метод Split() не обращает внимания на то, что входит в строки, поэтому будут обрабатываться любые буквы, цифры и другие символы.

Об удалении слов из строки: вы можете написать строку в буфер для этого, но я серьезно думаю, что это слишком далеко. Строки неизменяемы, что означает, что когда вы удаляете «следующее слово», вам придется воссоздать весь строковый объект. Нам будет проще просто разделить() всю строку, выбросить строку и работать с массивом оттуда.

+0

Спасибо за этот Streamcap. :) – 2010-07-14 09:53:37