【问题标题】:Convert long to string and string to long in java在java中将long转换为字符串和字符串转换为long
【发布时间】:2016-04-06 00:31:51
【问题描述】:

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

我有 2 个问题,例如:

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 个字符,以便它适合转换回字符串的函数。

请帮帮忙

【问题讨论】:

  • 欢迎来到本站,新年快乐!请提供您最近尝试独立解决此问题的代码,即使您的代码不起作用。
  • 你试过什么?此外,如果它总是每个字母 3 位数字,您可以将字符串每隔 3 个字符拆分一次,丢弃 L,然后将 ASCII 转换回字符。
  • 我已经编辑了我的第一篇文章,看看我在哪里挣扎并祝大家新年快乐 :) 决定从今天 1 月 1 日开始在 android 中做一些事情 :)
  • 创建一个 ASCII 表,其中每个字符都映射到一个代码,在获取每个字符的循环中从该表中找到代码,将代码添加到 StringBuilder,重复。对反向字符串执行相同操作。

标签: java


【解决方案1】:

让我告诉你如何开始。

我们可以使用 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);
}

【讨论】:

  • 如何将长值向后字符串
  • 恐怕这会是个问题。尝试在开头创建一个带有 0 的长数字,因为每个字符代表 3 个字符。或超过 7 个字母的单词(超过长度限制)。尝试使用 String 本身而不是 long。 String longValue = "072101108108111";。这使它更容易。
  • 你能给我一个字符串bro中longvalue的例子吗?
【解决方案2】:
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();
}

【讨论】:

  • 这里没有理由使用 StringBuffer,因为它是同步的,而 StringBuilder 不是。
  • 你最好也检查一下ch &lt; 10,因为在这种情况下你需要附加两个00
猜你喜欢
  • 2020-12-02
  • 2019-06-21
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
相关资源
最近更新 更多