如何在java中将大整数转换为Ascii字符串?

时间:2015-11-13 11:38:45

标签: java ascii

我见过很多将字符串转换为ascii的方法。 例如

"Nkn" = 78 + 107 + 110 = 78107110

但有没有办法轻松将78107110转换回"Nkn"(因为每个字符的ascii代码的长度可以从1到3不等)

2 个答案:

答案 0 :(得分:2)

  

但有没有办法轻松将78107110转换回" Nkn" (因为每个字符的ascii代码的长度可以从1到3不等)

如果单词不需要含义,

你可以实现一个尝试这样做的功能,在这种情况下它应该没有问题:

78107110 = "NkN"
78 = "N" because 781 is not valid ascii character
107 = "k" because 10 is LF special character
110 = "n" because 11 is VT special character

但是有很多案例无法知道结果,如果字符串不是单词,你可以比较(例如)字典,你就不会知道结果是正确的之一。

解决方法:

但这是编程,我们总是有一个计划b ...如果您想要做的是一个完整的转换/恢复功能,例如你可以在反向后填充你可以使用的字符:

"Nkn" = 078 + 107 + 110 = 078107110

复归:

078107110 = 078 + 107 + 110 = "Nkn"

如果将数字填充为3个字符并使用0填写,如果尺寸较小?

 String numberPadded = String.format("%03d", yournumber);

答案 1 :(得分:0)

简单回答:不。没有明确的方法将此字符串拆分为字节长值。任何格式都必须提供一种方法来确定如何解释文本。这可以通过使用固定偏移或使用标记等来完成。

在您的情况下,会有几个简单的解决方法:

  • 对值使用固定长度,从0开始用pad填充:
    例如:3270128与32,70,128变为032070128,并且可以以不同的方式拆分。
  • 使用十六进制代替十进制表示。这样每个byte / char由2位数字表示,并且可以以不同的方式恢复。