Вторник, 16 Апреля 2024, 22:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » String оператор чтобы взять несколько символов сначала слова
String оператор чтобы взять несколько символов сначала слова
alexsilentДата: Среда, 30 Августа 2017, 18:09 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Для String нужен оператор, чтобы взять несколько символов с начала слова, до неопределенной точки.
Код
Text.SubString(0,3)

ищет от любой точки, но у него нужно вводить определенное количество до конца фразы.
А что если я не знаю, сколько символов в слове просто нужно взять слово
и проверить, есть ли там вначале например слово "сказа" (это я для парсера делаю)
где я точно знаю, что мне вначале нужно эти символы, но в конце они могут быть любые, или их не быть вообще.
Есть ли такой оператор?

Добавлено (30 августа 2017, 18:09)
---------------------------------------------
другими словами это как
Код

if (name.IndexOf("разговари") > -1) {

}


только это должно быть обязательно в начале слова, то есть если есть в середине "разговари", а не вначале,
то оно уже не подходит
Либо самому придется писать функцию, уже примерно представляю как это будет выглядеть.


Сообщение отредактировал alexsilent - Среда, 30 Августа 2017, 18:12
zhuravelsvДата: Среда, 30 Августа 2017, 19:14 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Если я правильно понял, то в лучше всего будет использовать регулярные выражения
примерно так:
Код

string text = "много слов и текста";
Regex rgx = new Regex(@"(\b(сло)(\w+)\b)");
string word = rgx.Match(text).Groups[1].Value;

Будет находить всё что НАЧИНАЕТСЯ с "сло", в данном случае "слов"


Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
VostruginДата: Среда, 30 Августа 2017, 20:16 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Используй IndexOf, он вернёт тебе индекс вхождения. Так же можно включить игнорирование регистра (по-моему вторым параметром).

Код
string str = "My awesome string";
if(str.IndexOf("awesome") == 0) // false
{
   // some code
}

if(str.indexOf("My") == 0) // true
{
  // some code
}


Или StartWith(). Вернёт true, если строка начинается с указанной строки.

Код
var str = "My awesome string";
if(str.StartWith("My")) // true
{

}


P.S. В Substring второй параметр не обязателен. В такой случае он извлечёт строку начиная с заданной позиции до конца.






Сообщение отредактировал Vostrugin - Среда, 30 Августа 2017, 20:28
RangerДата: Пятница, 01 Сентября 2017, 04:11 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата zhuravelsv ()
регулярные выражения

они очень медленны + постоянная аллокация памяти.




Сообщение отредактировал Ranger - Пятница, 01 Сентября 2017, 04:12
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » String оператор чтобы взять несколько символов сначала слова
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг