Если я вас правильно понимаю, вы хотите разделить строку на равные части. Следующее будет делать это точно так же, как и сохранять его в таблице.
local variable2 = "this_is_the_string_contents"
math.randomseed(os.time())
local l = #variable2
local i = 0
local r = math.random(1, l/2)
local chunks = {}
while i <= l+5 do
print(variable2:sub(i, i+r))
table.insert(chunks, variable2:sub(i,i+r))
i = i+r+1
end
Полезно менять math.randomseed
каждый раз, когда вы запускаете скрипт, чтобы получить больше отклонений в случайных числах. Хотя быстрая разбивка.
local r = math.random(1, l/2)
: вы можете изменить 2 на то, что вам нужно, но это не дает сценарию назначить #variable2
в качестве длины, что позволяет получить переменная в виде одного куска.
while i <= l+5 do
: я добавил +5
для учета некоторых случаев превышения, просто в качестве меры предосторожности.
table.insert(chunks, variable2:sub(i, i+r))
: это то, что вам нужно вставить в таблицу. Поскольку мы хотим получить равную сумму, вы будете использовать i+r
в качестве конечного элемента.
i = i+r+1
: вам не нужны повторные буквы.
Конечные результаты отображаются следующим образом. :
Pass One:
this_is_the
_string_cont
ents
Pass Two:
thi
s_is
_the
_str
ing_
cont
ents
и так далее. Если это не то, что вы ищете, пожалуйста, сообщите и пересмотрите ваш вопрос. Если вы хотите хранить _
отдельно, а не часть слов, это даже проще, но, как вы описали это, вы сказали равномерно, поэтому я остановился на этом.