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;
}
}
Demo18_基本类型包装类
猜你喜欢
转载自blog.csdn.net/mingxu_W/article/details/81912229
今日推荐
周排行