这样的事情正在进行中:
str="Hello;this;is;a;text"
我想要的结果是:
result="72:101:108:108:111;116:104:105:115;..."
应该是ASCII格式的文本。
答案 0 :(得分:2)
您可以使用字符串匹配将每个单词分隔为;
,然后转换,concat:
local str = "Hello;this;is;a;text"
for word in str:gmatch("[^;]+") do
ascii = table.pack(word:byte(1, -1))
local converted = table.concat(ascii, ":")
print(converted)
end
上述代码的输出是:
72:101:108:108:111
116:104:105:115
105:115
97
116:101:120:116
我将把剩下的工作留给你。提示:使用table.concat
。
答案 1 :(得分:1)
这是另一种方法,它利用gsub
接受一个表来读取替换项的事实:
T={}
for c=0,255 do
T[string.char(c)]=c..":"
end
T[";"]=";"
str="Hello;this;is;a;text"
result=str:gsub(".",T):gsub(":;",";")
print(result)
答案 2 :(得分:1)
另一种可能性:
10:44:55
答案 3 :(得分:0)
使用string.find
- https://www.lua.org/pil/20.1.html
可以通过string.byte
- https://www.lua.org/pil/20.html
您需要做的是使用上面提到的两个函数构建一个新字符串。如果您需要更多基于字符串的功能,请访问官方Lua网站:https://www.lua.org/pil/contents.html
答案 4 :(得分:0)
好的......我走得更远,但我找不到如何返回由两个单独的字符串组成的字符串,如
str=str1&" "&str2