字符串部分分开;以ASCII编写的新字符串

时间:2016-09-15 08:15:16

标签: string lua ascii

这样的事情正在进行中:

str="Hello;this;is;a;text"

我想要的结果是:

result="72:101:108:108:111;116:104:105:115;..."

应该是ASCII格式的文本。

5 个答案:

答案 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

将字符转换为ASCII代码

您需要做的是使用上面提到的两个函数构建一个新字符串。如果您需要更多基于字符串的功能,请访问官方Lua网站:https://www.lua.org/pil/contents.html

答案 4 :(得分:0)

好的......我走得更远,但我找不到如何返回由两个单独的字符串组成的字符串,如

str=str1&" "&str2