我遇到了 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
}
感谢您给予的任何帮助。
答案 0 :(得分:3)
Yor 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 :(得分: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());
}