在java中将long转换为string,将string转换为long

时间:2016-01-01 13:27:40

标签: java

经过大量搜索,我无法找到我要找的东西

我有两个问题,如:

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

2 个答案:

答案 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();
}