如何将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 不等)
But is there a way to easily convert back 78107110 to "Nkn" (Since ascii codes of each character can vary in length from 1 to 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
但有很多情况是无法知道结果的,如果字符串不是可以与(例如)字典进行比较的单词,则不会知道结果是否正确一.
解决方法:
但这是编程,我们总是有一个计划 b...如果你想做的是 convert/revert 的完整功能,例如你可以在得到相反的字符后填充你可以填充的字符:
"Nkn" = 078 + 107 + 110 = 078107110
还原:
078107110 = 078 + 107 + 110 = "Nkn"
如何将一个数字填充为 3 个字符,如果较小则用 0
完成?
String numberPadded = String.format("%03d", yournumber);
简单的回答:没有。没有明确的方法可以将此字符串拆分为字节长的值。任何格式都必须提供一种方法来确定如何解释文本。这可以通过使用固定偏移量或使用标记等来完成。
对于您的情况,有几种简单的解决方法:
- 对值使用固定长度并从头开始填充 0:
例如:3270128 和 32,70,128 变成 032070128,可以分开拆分。
- 使用十六进制而不是十进制表示。这样每个 byte/char 都由 2 位数字表示,并且可以以不同的方式恢复。
我见过很多将字符串转换为ascii的方法。 例如
"Nkn" = 78 + 107 + 110 = 78107110
但是有没有办法轻松地将 78107110
转换回 "Nkn"
(因为每个字符的 ascii 码的长度可以从 1 到 3 不等)
But is there a way to easily convert back 78107110 to "Nkn" (Since ascii codes of each character can vary in length from 1 to 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
但有很多情况是无法知道结果的,如果字符串不是可以与(例如)字典进行比较的单词,则不会知道结果是否正确一.
解决方法:
但这是编程,我们总是有一个计划 b...如果你想做的是 convert/revert 的完整功能,例如你可以在得到相反的字符后填充你可以填充的字符:
"Nkn" = 078 + 107 + 110 = 078107110
还原:
078107110 = 078 + 107 + 110 = "Nkn"
如何将一个数字填充为 3 个字符,如果较小则用 0
完成?
String numberPadded = String.format("%03d", yournumber);
简单的回答:没有。没有明确的方法可以将此字符串拆分为字节长的值。任何格式都必须提供一种方法来确定如何解释文本。这可以通过使用固定偏移量或使用标记等来完成。
对于您的情况,有几种简单的解决方法:
- 对值使用固定长度并从头开始填充 0:
例如:3270128 和 32,70,128 变成 032070128,可以分开拆分。 - 使用十六进制而不是十进制表示。这样每个 byte/char 都由 2 位数字表示,并且可以以不同的方式恢复。