您的位置:首页 > 其它

Demo18_基本类型包装类

2018-08-21 18:08 113 查看
package test09;

import java.util.Arrays;

public class Demo18_基本类型包装类 {

private static final String SPACE = " ";

public static void main(String[] args) {
/*场景
* 通过文本框获取用户输入的数字数据,可是得到的都是字符串
* 如果想要对字符串中的数字进行运算,必须将字符串转成数字
* Java中提供了相应的解决对象
* 基本数据类型对象包装类:Java中将基本数据类型值封装成了对象
*
* 封装成对象有什么好处呢?
* 可以提供更多的基本操作数值的功能
*
* 基本数据类型       基本数据类型对象包装类
* byte          Byte
* short         short
* int           Integer
* long          Long
* float         Float
* double        Double
* boolean       Boolean
* char          Character
*  */
//int      学习     Integer用法
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
//      十进制转换成二进制
System.out.println(Integer.toBinaryString(10));//将一个数转换进制之后是一个字符串类型(参照10-->16的转换)
//      十进制转成16进制
System.out.println(Integer.toHexString(10));
//      十进制转成八进制
System.out.println(Integer.toOctalString(10));
/*  基本数据类型对象包装类特点
*  1.用于实现基本数据类型与字符串之间的转换
*   */
System.out.println("-------字符串转成基本数值--------");
//      1.1字符串转成基本数值   只演示Integer  基本数据类型   parse+首字母大写的基本上数据类型(string)   character不需要解析
System.out.println("123"+2);
System.out.println(Integer.parseInt("123")+2);//将“123”转换成123
//      可以将其他进制转化成十进制
System.out.println(Integer.parseInt("110", 2));//2代表指定的进制,前面的字符串必须符合你指定的进制
System.out.println("-------基本数值转成字符串--------");
System.out.println(123+2);
System.out.println(String.valueOf(123)+2);
System.out.println(Integer.toString(123)+2);
System.out.println("-------基本数值转成包装对象--------");
Integer i1 = new Integer(4);
Integer i2 = new Integer("4");
Integer i3 = Integer.valueOf("4");
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println("-------包装对象转成基本数值--------");
int num = i1.intValue();
System.out.println("num="+num);
System.out.println("-------自动装箱和拆箱--------");
//      在JDK1.5之后,有了一个包装类的新特性  简化书写   自动装箱
Integer i = 4 ;//自动装箱  Integer i3 =  Integer.valueOf("4");
//      i和4都是对象
i = i + 5;//将i对象装成基本数值  自动拆箱  运算完成之后 自动装箱
System.out.println("i="+i);
System.out.println("-------自动装箱和拆箱细节--------");
Integer a = new Integer(4);
Integer b = new Integer(4);
System.out.println(a==b);
System.out.println(a.equals(b));
Integer c =12;
Integer d =12;
//      在JDK1.5中自动装箱时,为了节省空间如果数值在byte(-128----+127)范围内,不会新创建空间而是使用原有的空间
System.out.println(c==d);
System.out.println(c.equals(d));
System.out.println("-------面试题--------");
//      23 9 -4 18 100 7  从小到大排列,生成一个数值有序的字符串
/*思路
* 1.排序  需要数组,数组需要元素
* 2.元素在字符串中,需要创建string对象来获取字符串中的数字
* 3.将字符串中获取的数组存储到一个int数组中,因为要排序
* 4.将排完的数组变成字符串
* 2.
*   */
String nums ="23 9 -4 18 100 7 ";
nums = sortNumberString(nums);
System.out.println("nums = "+nums);
}

public static String sortNumberString(String numsString) {
//获取字符串中的数字。怎么获取? 通过空格进行Indexof的索引,找到其位置,subString截取,

String[] strs = numsString.split(SPACE);//得到字符串  字符串比较与int比较不同   其中space是创建一个常量
//字符串数组转成int数组
int[] nums  = parseIntArray(strs);
//      对数组排序
Arrays.sort(nums);
//      将数组转成字符串

return toString(nums);
}
//  将数组转成字符串
private static String toString(int[] nums) {
StringBuilder sb = new StringBuilder();
//遍历数组
for(int i=0 ; i < nums.length ; i++){
if(i!=nums.length -1 ){
sb.append(nums[i]+" ");}
else{
sb.append(nums[i]);

}
}
return sb.toString();
}

//字符串数组转成int数组
private static int[] parseIntArray(String[] strs) {
// TODO Auto-generated method stub
//      定义int数组
int[] arr = new int[strs.length];
//      遍历数组
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(strs[i]);
}

return arr;
}

}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: