Java语言中虽然提供了byte、short、int、long、char、boolean、float、double这些基本数据类型,但由于他们并不是对象,因此有些操作会受到限制,比如不能将其存入容器中等等。为此Java在java.lang包中对于上述每一种基本类型都提供了一个对应的封装类(Wrapper),这些包装类中有一个不可变的对应基本类型的成员变量(也意味着一旦设定就没法更改了)并提供了若干方法。
仍然以Integer为例,看看Wrapper类型都提供了哪些功能:
1.字符串与基本数据类型的互转:XX.parseXX方法与XX.toString(XX)静态方法
需要注意的是,待转换的字符串必须符合对应类型的规定,否则在运行期会抛出解析错误的异常:
public static void main(String[] args) {
int n1 = Integer.parseInt("666666");
int n2 = Integer.parseInt("-666666");
int n3 = Integer.parseInt(" 2333333");
System.out.println(n1);
System.out.println(n2);
}
在这段代码中,n1和n2能被正常解析出来,但在执行Integer.parseInt(” 2333333”)时,由于输入的字符串中包含空格,其不能解释为数字,所以发生异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: " 2333333"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at CMain.main