繁体   English   中英

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

[英]how to convert a large integer to Ascii character string in java?

我已经看到许多将字符串转换为ascii的方法。 例如

"Nkn" = 78 + 107 + 110 = 78107110

但是有一种方法可以轻松地将78107110转换回"Nkn" (因为每个字符的ASCII码的长度可以在1到3之间变化)

但是有一种方法可以轻松地将78107110转换回“ Nkn”(因为每个字符的ASCII码的长度可以在1到3之间变化)

如果单词不需要含义, 则为NO

您可以实现一个尝试执行此功能的函数,在这种情况下,它应该可以正常工作:

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

但是在很多情况下不可能知道结果,并且如果字符串不是可以与(例如)字典进行比较的单词,您将不会知道结果是正确的。

解决方法:

但这是编程,我们始终有一个计划。如果您想做的是一个完整的功能来转换/还原,例如,您可以填充字符,然后得到相反的结果:

"Nkn" = 078 + 107 + 110 = 078107110

还原:

078107110 = 078 + 107 + 110 = "Nkn"

如何将数字填充为3个字符,如果大小较小则以0填充?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM