0

我被困在问题的最后,得到一个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
}

感谢您提供的任何帮助。

4

2 回答 2

3

你的 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;
    }
于 2013-04-15T06:02:40.577 回答
0

只要不是整数,您就需要返回我已经用一点点实现了您的 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-04-15T06:06:42.323 回答