JAVA学习:将字符串转成数字
今天在⾯试时,⾯试官问的第⼀个问题就是如何将字符串转化成数字
我⼼想太简单了:⽤int 的封装类型对象Integer 中有⼀个parseInt()⽅法可将传⼊参数的字符串转换成数字 如下图
String str= "123456";
int num=Integer.parseInt(str);
System.out.println(num);
但是,⾯试官说不对,说要⽤String 的valueof()⽅法转成数字,回到学校亲⾃实践后了解 当我们的字符串为纯数字时才可以使⽤parseInt()⽅法解析,否则 当字符串中含有除数字以外的字符时 会报数字格式化异常:
String str= "abc123456";
int num=Integer.parseInt(str);
System.out.println(num);
尝试使⽤integer 的valueof⽅法将字符串转换成数字
public class FindAllNum {
public static void main(String[] args) {
String aaa="12141";
int a=Integer.valueOf(aaa);
System.out.println(a);
}
}
尝试当字符串中含有其他类型字符时,再次尝试取出数字,发现依然会爆出异常
public class FindAllNum {
public static void main(String[] args) {
String str= "a1v2b3s45w6";
// String aaa="12141";
int a=Integer.valueOf(str);
System.out.println(a);
}
}
尝试使⽤Integer 的valueof ()⽅法 也可以取出字符中的数值,但是与parseInt 功能类似,当出现字符串时都会报出数字格式化异常,不同的时valueof 返回的时int的封装类型对象, ⽽parseInt返回的时int
基本数据类型
java valueof通过学习,还可以通过正则表达式的⽅式匹配出数字的字符 代码实现如图所⽰
import Matcher;
import Pattern;
public class FindAllNum {
public static void main(String[] args) {
String str= "a1v2b3s45w6";
char[] chars = CharArray();
// 匹配格式
String regex="[^0-9]";
// 正则表达是编译表⽰
Pattern p=Patternpile(regex);
// 创建匹配器
Matcher matcher=p.matcher(str);
//将每个⼦序列转换成⼀个字符串
String placeAll("");
// 去除头尾空格
im();
int number= Integer.parseInt(num);
System.out.println(number);
}
}
结论 ⽆论通过使⽤Intger 的parseInt()⽅法还是valueof 都可以将字符串转成数字转成数字,因此我的回答应该没有错误,希望以后在⾯试时能⾃信⼀点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论