【问题标题】:Converting String to it's integer ascii values将字符串转换为整数 ascii 值
【发布时间】:2013-04-15 05:56:58
【问题描述】:

我遇到了NumberFormatException问题。

我想获取诸如 Wsup 之类的字符串,并将其转换为 ASCII 值,结果为 '87115117112'。

我已经通过几种不同的方式成功构建了那串数字,但是当我尝试在上面使用parseInt(string) 时,我得到了我的例外。我尝试将字符串打印为字符数组以查找隐藏的空白,我使用String.trim() 没有运气,我很困惑为什么它不被识别为有效整数。

public static int toAscii(String s){
    StringBuilder sb = new StringBuilder();
    String ascString = null;
    long asciiInt;
            for (int i = 0; i < s.length(); i++){
                sb.append((int)s.charAt(i));
                char c = s.charAt(i);
            }
            ascString = sb.toString();
            asciiInt = Integer.parseInt(ascString); // Exception here
            return 0;// asciiInt;    0 in place just to run
}

感谢您提供的任何帮助。

【问题讨论】:

  • 忽略 char c = s.char... 我尝试过的另一种方式的残余
  • 87115117112 不适合 32 位整数(有符号或无符号)。

标签: java string integer ascii numberformatexception


【解决方案1】:

你的 asciiInt 是长类型,所以这样做

  asciiInt =  Long.parseLong(ascString);

这是你的全部功能

public static long toAscii(String s){
        StringBuilder sb = new StringBuilder();
        String ascString = null;
        long asciiInt;
                for (int i = 0; i < s.length(); i++){
                    sb.append((int)s.charAt(i));
                    char c = s.charAt(i);
                }
                ascString = sb.toString();
                asciiInt = Long.parseLong(ascString);
                return asciiInt;
    }

【讨论】:

  • +1 另外,请确保您返回的是 long 而不是 int (public static long toAscii(String s))
  • 非常感谢!我已经认识到我的结果不适合 int 类型,这就是我将 asciiInt 更改为 long 的原因,但我没有相应地跟进。代码已设置完毕,再次感谢
【解决方案2】:

你需要返回的不是整数,我已经用一点点实现了你的 toAscii()

public static long toAscii(String s){
        StringBuilder sb = new StringBuilder();
        long asciiInt;
        for (int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            asciiInt = (int)c; 
            System.out.println(c +"="+asciiInt);
            sb.append(asciiInt);
        }
        return Long.parseLong(sb.toString());
}

【讨论】:

    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多