Bumer_32 36 Опубликовано: 25 июля, 2022 допустим есть слово World мне нужно разбить слово побуквенно и поместить в таблицу тип было так a = "World" а стало так a = {W, o, r, l, d} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 25 июля, 2022 попробуй так Скрытый текст local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do table.insert(t,unicode.sub(a, i, i)) end print(t[1],t[2],t[3],t[4],t[5]) каждому символу будет присвоен свой индекс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 903 Опубликовано: 25 июля, 2022 Посимвольно, любой язык: local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do t[i] = unicode.sub(a, i, i) end Побайтово, english-only local a = "World" local t = {} for i = 1, #a do t[i] = a:sub(i, i) end Через разложение на таблицу байтов, english-only local a = "World" local t = {string.byte(a, 1, #a)} for i = 1, #t do t[i] = string.char(t[i]) end По регулярке, english-only local a = "World" local t = {} local index = 1 for char in a:gmatch(".") do t[index] = char index = index + 1 end По регулярке иным путём, english-only local a = "World" local t = {} local index = 1 a:gsub(".", function(char) t[index] = char index = index + 1 end) 3 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 2 минуты назад, ECS сказал: Посимвольно, любой язык: local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do t[i] = unicode.sub(a, i, i) end Побайтово, english-only local a = "World" local t = {} for i = 1, #a do t[i] = a:sub(i, i) end Через разложение на таблицу байтов, english-only local unicode = require("unicode") local a = "World" local t = {string.byte(a, 1, #a)} for i = 1, #t do t[i] = string.char(t[i]) end По регулярке, english-only local a = "World" local t = {} local index = 1 for char in a:gmatch(".") do t[index] = char index = index + 1 end По регулярке иным путём, english-only local a = "World" local t = {} local index = 1 str:gsub(".", function(char) t[index] = c index = index + 1 end) еман, ответ прям на всё случаи жизни и для всех спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 запросы немного поменялись, всё таки не на все случаи теперь нужно каждую букву ещё и в кавычки a = {"W", "o", "r", "l", "d"} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 903 Опубликовано: 25 июля, 2022 Ну дк local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do t[i] = '"' .. unicode.sub(a, i, i) .. '"' end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 57 минут назад, ECS сказал: Ну дк local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do t[i] = '"' .. unicode.sub(a, i, i) .. '"' end ну дк спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 (изменено) 1 час назад, ECS сказал: Ну дк local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do t[i] = '"' .. unicode.sub(a, i, i) .. '"' end лол оно работает будто как то не так тип сверху сделал как ты а снизу вручную прописал скобки заранее результат на лицо виден обычные принты Изменено 25 июля, 2022 пользователем Bumer_32 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 25 июля, 2022 23 минуты назад, Bumer_32 сказал: лол оно работает будто как то не так код плиз, возможно ошибка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 2 минуты назад, serafim сказал: код плиз, возможно ошибка всё стандартно как у ecs но то что вручную выводит правильно а второе не оч Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 25 июля, 2022 (изменено) Так всё норм в варианте a = {"a","b","c","d","e"} индекс в таблице а[1] будет равен а без кавычек тип данных string применимо если число нужно записать как текст Далее код отрабатывает как надо помещая символы в кавычки добавляя их в таблицу t то есть данные в таблице будут записаны в виде строки или string при желании можно на выходе добавлять кавычки a = {"a","b","c","d","e"} print('"' .. a[1] .. '"') Изменено 25 июля, 2022 пользователем serafim Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 1 минуту назад, serafim сказал: Так всё норм в варианте a = {"a","b","c","d","e"} индекс в таблице а[1] будет равен а без кавычек Далее код отрабатывает как надо помещая символы в кавычки добавляя их в таблицу t то есть данные в таблице будут записаны в виде строки или string при желании можно на выходе добавлять кавычки a = {"a","b","c","d","e"} print('"' .. a[1] .. '"') так к варианту а нету претензий тут прикол что вариант второй выводит кавычки как символ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
serafim 272 Опубликовано: 25 июля, 2022 1 минуту назад, Bumer_32 сказал: так к варианту а нету претензий тут прикол что вариант второй выводит кавычки как символ должно быть W без кавычек ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 Только что, serafim сказал: должно быть W без кавычек ? по идее да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 Автор вопроса 36 Опубликовано: 25 июля, 2022 2 минуты назад, serafim сказал: попробуй так Скрыть содержимое local unicode = require("unicode") local a = "World" local t = {} for i = 1, unicode.len(a) do table.insert(t,unicode.sub(a, i, i)) end print(t[1],t[2],t[3],t[4],t[5]) каждому символу будет присвоен свой индекс думаю уже это как я в программу внесу его то сработает спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgramCrafter 545 Опубликовано: 26 июля, 2022 (изменено) 20 часов назад, Bumer_32 сказал: a = {W, o, r, l, d} Дело в том, что такой таблицы в Lua не существует. Точнее говоря, создание такой таблицы будет грузить из окружения значения переменных W, o, r, l, d - и, скорее всего, получит для всех nil. Получится таблица {nil, nil, nil, nil, nil}. Строка же записывается в кавычках: "World", например. Если нужна таблица из пяти строк, то в её представлении тоже будут кавычки: a = {"W", "o", "r", "l", "d"} print(a[1]) -- выводит первую строку из таблицы -- будет выведено просто W print выводит не представление строки, корректное как константа в Lua, а саму эту строку. Например, такой код ведь кавычки не выводит, и не должен. print("Hi, Bumer_32") -- Hi, Bumer_32 Чтобы получить корректную запись таблицы в Lua-коде, можно использовать сериализацию. a = {W, o, r, l, d} print(require("serialization").serialize(a)) -- {nil,nil,nil,nil,nil} b = {"W", "o", "r", "l", "d"} print(require("serialization").serialize(b)) -- {"W","o","r","l","d"} c = {'"W"', '"o"', '"r"', '"l"', '"d"'} print(require("serialization").serialize(c)) -- {"\"W\"","\"o\"","\"r\"","\"l\"","\"d\""} Изменено 26 июля, 2022 пользователем ProgramCrafter копипаста 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
допустим есть слово World мне нужно разбить слово побуквенно и поместить в таблицу
тип было так
а стало так
a = {W, o, r, l, d}
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах