经过大量搜索,我无法找到我要找的东西
我有两个问题,如:
String str = "Hello"
现在我想要长期的价值
072101108108111L
其中Ascii
072 = H
101 = e
108 = l
108 = l
111 = o
制作Hello
。
我该如何做,然后将其转换回字符串?
例如,如果我有一个长值
072101108108111L
然后如何在java中找回字符串“Hello”?
这是我所在的地方:
我可以像这样得到字符串
String str = "Hello";
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray())
sb.append((int)c);
BigInteger mInt = new BigInteger(sb.toString());
String valu = mIn.tostring();
但“H”的值为72;我希望它是072,因此结果是3个字符,因此它适合转换回String的函数。
任何帮助PLZ
答案 0 :(得分:2)
让我告诉你如何开始。
我们可以使用for循环获取ascii字符值并将其附加到字符串。
for(int i = 0; i < s.length(); ++i)
{
int ch = (int)s.charAt(i);
System.out.println(ch);
}
Prints
72
101
108
108
111
现在,如果小于100
StringBuilder ans = new StringBuilder();
for(...){
...
if(ch < 100){
ans.append("0).append(ch);
}
}
尝试使用String本身而不是long。
String longValue = "072101108108111";
现在,您知道每个字母都表示为3个字符,每个字符分为3个字符。
for(int i = 0; i < s.length; i += 3)
{
int ch = Integer.parseInt(s.substring(i, i + 3));//get the integer representation of the character
System.out.println((char)ch);
}
答案 1 :(得分:1)
private static String longToString(String string) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < string.length(); i = i + 3) {
String substring = string.substring(i, i + 3);
char ch = (char) Integer.parseInt(substring);
sb.append(ch);
}
return sb.toString();
}
private static String stringToLong(String string) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < string.length(); ++i) {
int ch = (int) string.charAt(i);
if (ch < 100) {
if(ch<10)
{
sb.append('0');
}
sb.append('0').append(ch);
} else {
sb.append(ch);
}
}
return sb.toString();
}