问题一:如何将数字类型的字符串转化为int类型。因为之前对该部分认识不够清晰,特作分析。
String str = "100"; Integer.parseInt(str); Integer.valueOf(str); (int)str;
对于上面的3种转化方式,
第一种
Integer.parseInt(str);
刚开始想当然的以为其转化为Integer类型的,但是查完API才发现,真实情况为int。
第二种
Integer.valueOf(str);
虽然你在使用的时候可能没有问题,但是不符合其要求。因为要求将String转化为int,而是转化为 Integer。当然在jdk1.5之后,已可以自由转换,但不符合题意。
第三种
(int)str;
看着的话,我比对了一下可能性,发现相对来讲这个我曾经用到过其它的强制转化,相必这个也是可以的,但是现实是残酷的。我在验证的时候,发现竟然不能通过编译,整个都是我yy的。其报错的代码是Cannot cast from String to int。我想是不是基本数据类型的问题啊,试着使用Integer,发现还是不行。这个时候才意识到可能是强制类型转换的条件限制。到这个时候,竟然把基础的知识忘掉了,找打啊。赶紧补上,原理如下:
强制类型转换,又叫造型。分为基本数据类型和引用数据类型两种情况。
自动类型转换
在运行程序的时候,经常需要类型转换,Java会在以下情况下,自动做数据类型的转换。
- 转换前的数据类型与转换后的类型兼容。
- 转换后的数据类型的表示范围比转换前的类型大。
引用类型的强制类型转换。
对于引用类型来说,什么是强制类型转换呢?简单地说,就是把父类型转换为子类型。因为子类型比父类型的内涵要丰富,无非就是属性更多功能更强,所以要把父类型转换为子类型,需要强制,所以叫强制类型转换。那么,是不是只要是父类型的变量就可以转换为子类型呢?事实上不是,这里是有条件限制的。
首先来看发生在什么情况下。我们用一个类型的构造方法构造出一个对象的时候,对象的类型已经确定了,就是这个类型,但是java允许我们可以不用这个类型的变量引用它,而使用它的父类类型,这时候情况就是我们用一个功能较弱的类型引用了一个功能较强的对象。然而有时候我们又希望这个对象完全发挥它的作用,就需要用一个它本身的类型的变量来引用它,因为原来那个父类的变量是不具备这些功能的,不能使用variablename.function()来使其发挥作用,所以还是用它自己的吧。问题是对象已经在内存中了,已经构造完了,你即使声明一个它本身类型的变量怎么指向它呢?答案是借助原来那个变量,就是它父类型的那个变量,让新的变量和原来的那个指向同一个对象。方式就是两者之间划等号。可是引用类型变量的相等需要两者类型相同,问题是不相同,怎么办?那就是把父类型的变量强制转换成子类型。看到这里有些人可能觉得写的太乱了,其实总结一下,就一句话,只有存在父子关系才可以强制类型转换。
问题二:
对类似String str = "00100";的字符串,转化为对应的整数?
我的想法,str.subString(str.indexOf("正则表达式获取第一个非0且非字母的位置"),str.length);但是,后来别人告诉我其实可以直接Integer.parseInt(str);的。哎,又长知识了。
相关推荐
java中String类型和int类型比较及相互转换
初学者用于JAVA中int、String的类型转换的几种方法 并说明这其中的区别。
java中string和int型的相互转换.doc
今天小编就为大家分享一篇java判断String类型是否能转换为int的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Java Enum和String及int的相互转化示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一、强制类型转换 [java] long ll = 300000; int ...
java中int_char_string三种类型的相互转换
String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写 String trim():返回字符串的副本,忽略前导空白和尾部...
js中int和string数据类型互相转化实例 https://www.jb51.net/article/154745.htm 今天做项目的时候,碰到一个问题,需要把String类型的变量转化成int类型的。按照常规,我写了var i = Integer.parseInt(“112”);但...
1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: ...
1. 获取时区时间 public static ZonedDateTime getNow(int offset) 2. 解析指定时间 public static ZonedDateTime parse(String date,String dateFormat,int offset) 3. 获取某一天的零点 public ...7. 转化为实践戳
本文通过实例代码给大家详细介绍了Java中string和int的互相转换问题,感兴趣的朋友一起看看吧
封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5加密、sql语句 处理、把null转换为字符串"0"、null 处理、long型变量转换成String型变量、int型变量转换成String型变量、String型变量转换成int型...
主要介绍了深入了解Java中String、Char和Int之间的相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
byte转化工具类,可以实现byte转int,数组,string,小端取高位,低位等
java实现任意进制的转换,包括2进制转16进制,10进制转16进制,10进制转任意进制,36进制加法,可自行手动设置转换进制和需要转换的数字.
下面小编就为大家带来一篇java byte数组与int,long,short,byte的转换实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java字节流相关操作,int转换成byte字节数组,String转换为byte字节数组,bcd码转换。
java 的 String.format() 的 Javascript 实现,增加了支持格式化百分比和后缀-SI,如 120M、30K。 将 Formatter.format() 移植到 javascript 的基本开始。 目前依赖 .toLocaleString() 进行命名日期格式。 请参阅...