string - 在 Julia 中以整数形式表示非数字字符串

标签 string type-conversion julia

我正在寻找一种简单且可逆的方法来用整数表示 Julia 字符串(例如用于密码学)。需要明确的是,我没有考虑像“123”这样的整数的字符串表示,而是像“Hello”这样的任意字符串。该表示形式不需要是人类可读的,但它需要能够轻松反转回唯一的字符串(因此不是哈希)。它不需要是高效的;我只是在寻找尽可能简单的东西。 (此外,如果它只适用于小字符集,例如小写罗马字母,也没关系。)

一种简单的方法是将字符串收集到一个字符向量中,将每个字符解析(Int, _)为一个整数,然后连接整数。但这似乎很麻烦,我怀疑内置的 Julia 函数(或小型函数组合)可以更轻松地完成工作。

最佳答案

如果您的字符串仅使用数字0-9和字母a-zA-Z,那么您可以直接将字符串解析为base 62大整数:

julia> s = randstring(123)
"RFXkzD6VpWcwvbsxOtdTxS4DGcgciKgDXECa9fEK0Djcdkcj5N75vIHEMVyuH9mcYgvFbLhbPdrKyPIO4JsK1DKgZIacov6WKDZdIpGJ5iJ15dpjmcCBCybMmxB"

julia> i = parse(BigInt, s, base=62)
12798646956721889529517502411501433963894611324020956397632780092623456213685688389093681112679380669903728068303911743800989012987014660454736389459814982802097607808640628339365945710572579898457023165244164689548286133

julia> string(i, base=62)
"RFXkzD6VpWcwvbsxOtdTxS4DGcgciKgDXECa9fEK0Djcdkcj5N75vIHEMVyuH9mcYgvFbLhbPdrKyPIO4JsK1DKgZIacov6WKDZdIpGJ5iJ15dpjmcCBCybMmxB"

关于string - 在 Julia 中以整数形式表示非数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49415718/

相关文章:

Java压缩字符串

swift - 如何将字节转换为字符串?

testing - 使用 Julia,有没有办法创建一个测试/临时/一次性环境?

io - 使用相同的 key 写入现有的 Julia 数据文件

plot - 如何使用 Makie 的流图为时变函数制作动画?

c# - 按值传递和按引用传递

php - 将主题标签转换为链接

C++从文本文件读取到数组/字符串

c++ - 将可变大小的 double 组转换为 wchar_t

c++ - 类类型转换 - 运算符 + 不明确