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

Как разбить слово побуквенно?

Вопрос

допустим есть слово World мне нужно разбить слово побуквенно и поместить в таблицу

тип было так

a = "World"

а стало так

a = {W, o, r, l, d}

 

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


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

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

попробуй так

Скрытый текст

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])

 

каждому символу будет присвоен свой индекс

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


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

Посимвольно, любой язык:

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)

 

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


Ссылка на сообщение
Поделиться на других сайтах
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)

 

еман, ответ прям на всё случаи жизни и для всех

спасибо

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


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

запросы немного поменялись, всё таки не на все случаи

теперь нужно каждую букву ещё и в кавычки

a = {"W", "o", "r", "l", "d"}

 

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


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

Ну дк

local unicode = require("unicode")

local a = "World"
local t = {}

for i = 1, unicode.len(a) do
  t[i] = '"' .. unicode.sub(a, i, i) .. '"'
end

 

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


Ссылка на сообщение
Поделиться на других сайтах
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

 

ну дк   спасибо

image.png.a1cd5909e87349bb151af7e1cf7411ec.png

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


Ссылка на сообщение
Поделиться на других сайтах
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

 

лол оно работает будто как то не так

image.png.7a39cea6fd686c9b75c898891efd1f9c.png

тип сверху сделал как ты а снизу вручную прописал скобки заранее

результат на лицо виден

 

обычные принты

Изменено пользователем Bumer_32

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


Ссылка на сообщение
Поделиться на других сайтах
23 минуты назад, Bumer_32 сказал:

лол оно работает будто как то не так

код плиз, возможно ошибка

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, serafim сказал:

код плиз, возможно ошибка

image.png.c5b8d370c53d671f118dd441d9a94214.png

 

image.png.e7cb20d012834fe9ee146b576377d3ff.png

 

всё стандартно как у ecs но то что вручную выводит правильно а второе не оч

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


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

Так всё норм

 

в варианте a = {"a","b","c","d","e"}

индекс в таблице а[1] будет равен а без кавычек

тип данных string применимо если число нужно записать как текст

 

Далее код отрабатывает как надо помещая символы в кавычки добавляя их в таблицу t

то есть данные в таблице будут записаны в виде строки или string

 

при желании можно на выходе добавлять кавычки

a = {"a","b","c","d","e"}

print('"' .. a[1] .. '"')

 

Изменено пользователем serafim

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


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, serafim сказал:

Так всё норм

 

в варианте a = {"a","b","c","d","e"}

индекс в таблице а[1] будет равен а без кавычек

 

Далее код отрабатывает как надо помещая символы в кавычки добавляя их в таблицу t

то есть данные в таблице будут записаны в виде строки или string

 

при желании можно на выходе добавлять кавычки

a = {"a","b","c","d","e"}

print('"' .. a[1] .. '"')

 

так к варианту а нету претензий тут прикол что вариант второй выводит кавычки как символ

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


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Bumer_32 сказал:

так к варианту а нету претензий тут прикол что вариант второй выводит кавычки как символ

должно быть W без кавычек ?

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


Ссылка на сообщение
Поделиться на других сайтах
Только что, serafim сказал:

должно быть W без кавычек ?

по идее да

 

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


Ссылка на сообщение
Поделиться на других сайтах
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])

 

каждому символу будет присвоен свой индекс

думаю уже это как я в программу внесу его то сработает

спасибо

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


Ссылка на сообщение
Поделиться на других сайтах
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\""}

 

Изменено пользователем ProgramCrafter
копипаста

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


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

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

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

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

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

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

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

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

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


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