有个关于字符串的小问题,希望高手能够指教一下,小弟感激不尽!!

喜欢多瑞咪的发索拉西 2016-06-24 06:45:01
新手小程序,一个关于字符串的问题,请大家指教,拜托了!
完整程序如下:
package biaozhun;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Strin {

public static void main(String[] args) {
String s1=null,s2=null,ss,si,sf;
int i1,i2;
float f1,f2;
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print("输入第一个字符串: ");
s1=strin.readLine();
System.out.print("输入第二个字符串: ");
s2=strin.readLine(); }
catch(Exception e){
System.out.println(e.getMessage());
}
i1=Integer.parseInt(s1);
i2=Integer.parseInt(s2);
f1=Float.parseFloat(s1);
f2=Float.parseFloat(s2);
ss=strAdd(s1,s2);
si=strAdd(i1,i2);
sf=strAdd(f1,f2);
System.out.println("输入德两个字符串相加结果为:"+ss);
System.out.println("输入德两个字符串相加结果为:"+si);
System.out.println("输入德两个字符串相加结果为:"+sf);
}
static String strAdd(String str1,String str2){
return str1+str2;
}
static String strAdd(int it1,int it2){
return String.valueOf(it1+it2);
}
static String strAdd(float fl1,float fl2){
return String.valueOf(fl1+fl2);
}
}

我试过了,运行没问题,输入数字有结果,但是输入带字母的字符串就报错!如下所示:
输入第一个字符串: 124
输入第二个字符串: 10k
出异常:Exception in thread "main" java.lang.NumberFormatException: For input string: "10k"
想了一下午,百思不得其解,明明已经用Integer.parseInt()转化成整形数据类型了,为什么还报错?求大神指教,多多感谢!!!
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢大家,楼上是大神啊,正则表达式用得这么溜,谢谢啦,有点懂啦,初学者,艰辛呀
阳光越来越暖 2016-06-24
  • 打赏
  • 举报
回复
package Test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Pattern; public class Strin { public static void main(String[] args) { String s1=null,s2=null,ss,si,sf; int i1,i2; float f1,f2; BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); try{ System.out.print("输入第一个字符串: "); s1=strin.readLine(); System.out.print("输入第二个字符串: "); s2=strin.readLine(); } catch(Exception e){ System.out.println(e.getMessage()); } try { s1=Pattern.compile("[^0-9]").matcher(s1).replaceAll(""); s2=Pattern.compile("[^0-9]").matcher(s2).replaceAll(""); i1=Integer.parseInt(s1); i2=Integer.parseInt(s2); f1=Float.parseFloat(s1); f2=Float.parseFloat(s2); ss=strAdd(s1,s2); si=strAdd(i1,i2); sf=strAdd(f1,f2); System.out.println("输入德两个字符串相加结果为:"+ss); System.out.println("输入德两个字符串相加结果为:"+si); System.out.println("输入德两个字符串相加结果为:"+sf); } catch (NumberFormatException e) { System.out.println("你输入的内容无法转成数字类型"); } } static String strAdd(String str1,String str2){ return str1+str2; } static String strAdd(int it1,int it2){ return String.valueOf(it1+it2); } static String strAdd(float fl1,float fl2){ return String.valueOf(fl1+fl2); } } 我把字符串里面的数字截取出来了
阳光越来越暖 2016-06-24
  • 打赏
  • 举报
回复
引用 3 楼 windowsoahil 的回复:
就是转换这一步错了,10k这个字符串不能被正确转为一个整数
它不能被转换成数字类型的 非要转的话也行 只有截取出来
阳光越来越暖 2016-06-24
  • 打赏
  • 举报
回复
package Test; import java.io.BufferedReader; import java.io.InputStreamReader; public class Strin { public static void main(String[] args) { String s1=null,s2=null,ss,si,sf; int i1,i2; float f1,f2; BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); try{ System.out.print("输入第一个字符串: "); s1=strin.readLine(); System.out.print("输入第二个字符串: "); s2=strin.readLine(); } catch(Exception e){ System.out.println(e.getMessage()); } try { i1=Integer.parseInt(s1); i2=Integer.parseInt(s2); f1=Float.parseFloat(s1); f2=Float.parseFloat(s2); ss=strAdd(s1,s2); si=strAdd(i1,i2); sf=strAdd(f1,f2); System.out.println("输入德两个字符串相加结果为:"+ss); System.out.println("输入德两个字符串相加结果为:"+si); System.out.println("输入德两个字符串相加结果为:"+sf); } catch (NumberFormatException e) { System.out.println("你输入的内容无法转成数字类型"); } } static String strAdd(String str1,String str2){ return str1+str2; } static String strAdd(int it1,int it2){ return String.valueOf(it1+it2); } static String strAdd(float fl1,float fl2){ return String.valueOf(fl1+fl2); } } 给你修改了一下 现在不会报错了
解开者 2016-06-24
  • 打赏
  • 举报
回复
就是转换这一步错了,10k这个字符串不能被正确转为一个整数
阳光越来越暖 2016-06-24
  • 打赏
  • 举报
回复
java.lang.NumberFormatException 数字类型转换错误 不是什么字符串都能转换成数字的
阳光越来越暖 2016-06-24
  • 打赏
  • 举报
回复
10k 怎么能转换成数字类型? 当然报错啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧