Java转换字符串为int:Integer.valueOf()和Integer.parseInt()

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

Java里转换字符串为整型有两种方式:

  • Integer.valueOf(String str)
  • Integer.parseInt(String str)

示例

String str = "100";
Integer i1 id= Integer.valueOf(str);
int x2 = Integer.parseInt(str);

从方法的签名看,两者不同的地方是它们返回的类型不一样。valueOf返回的是包装类型Integer,而parseInt返回的基本类型int。

valueOf的实现

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}

valueOf实质是调用parseInt,然后再调用Integer.valueOf(int i);

进入Integer.valueOf(int i)

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

其中 IntegerCache.low = -128,IntegerCache.high=127。当i值在-128到127的范围返回的是缓存在IntegerCache里的对象,超出范围返回新的整型。

所以使用Integer.valueOf返回的Integer型数据,建议不要直接做相等比较

System.out.println(Integer.valueOf(20) == Integer.valueOf(20));  //true
System.out.println(Integer.valueOf(200) == Integer.valueOf(200)); //false

总结

Integer.valueOf(str) 等同于new Integer(Integer.parseInt(str))。

版权声明:著作权归作者所有。

相关推荐

TypeScript:字符串转换为数字

在TypeScript,String转换为Number有以下方式:Number构造函数(推荐)let n = Number('1234') // 1234 let nan = Number('abcd') // NaN +号操作符let n = +'1234' 

Swift日期和字符串互相转换(Swift 3/Swift 4)

Swift随着版本的升级,日期类都会有一点变化。所以各个版本的Swift日期和字符串的转换有所不同。Swift 4String转换为Datevar dateString = "2017-11-17" var dateFormatter = DateFormatter() // dateFormat

Python:字符串和datetime的转换

Python的字符串和时间的转换可以分别使用strptime和strftime。strptime(string parse time)datetime.strptime(date_string, format),根据format指定的时间格式解析用于表示时间的字符串date_string。>>>from datetime import&nb

Python判断字符串是否为数字

Python判断一个字符串是否为数字,可以分为两种情况考虑。字符为纯数字如果需要检测的数字为纯数字,不包括负号,小数点等,可以使用字符串的isdigit()函数来判断>>> a = "001" >>> a.isdigit() True >>> a = &q

Swift 4转换html为字符串文本

Swift 4可以添加extension来把html转换为字符串。String添加扩展extension String {     var html2AttributedString: NSAttributedString? {       

shell命令在原文件查找和替换字符串

sed在文件直接替换字符串最简单的是使用sed,如sed -i -e 's/abc/XYZ/g' myfile.txt-i[SUFFIX], --in-place[=SUFFIX]表示就地编辑,如果后面提供了后缀,则会把原文件以提供的后缀做备份。-e script, --expression=script指定执行编辑的脚本,这里使用了替换表达式。表达式格式为s/被替换文本/新的文本/gperl也可

Java 8 转换Stream为数组

Stream转换为数组最简单的方法是使用toArray(IntFunction<A[]> generator)Stream<String> streamString = Stream.of("a", "b", "c");String[] stringArray = streamString.toArray(String[]::new);String[]:new会接收Stre

Java把LocalDate转换为Date

有时需要在LocalDate和Date之间互转。LocalDate转换为DateLocalDate localDate = LocalDate.now(); System.out.println("LocalDate = " + localDate); Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toIn