Перейти к содержимому
  • 0
samrrr

Обработка строк в Lua

Вопрос

Кто может сделать функцию берущую строку "20 samrrr der"

и возвращающую {"20","samrrr","der"}?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Google:

split("a,b,c", ",") --> {"a", "b", "c"}

Для тебя: split("20 samrrr der", " "). Возвращает {20, "samrrr", "der"}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это на каком языке?

Тоже хотел узнать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Наверное, на Луа, но сперва нужно написать что нибудь вроде:

function split(text, sep)
	sep = sep or "\n"
	local lines = {}
	local pos = 1
	while true do
		local b,e = text:find(sep, pos)
		if not b then table.insert(lines, text:sub(pos)) break end
		table.insert(lines, text:sub(pos, b-1))
		pos = e + 1
	end
	return lines
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если так, как хочет Самррр  по пробелам забить слова в массив, то можно и так, без указания типа сепаратора:

-- разбиваем строку по словам
local function split(line)
  local data = {}
  for word in line:gmatch("%S+") do table.insert(data, word) end
  return data
end

Тогда  split("20 samrrr der")  вернет именно то, что ему нужно {"20","samrrr","der"}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...