zoukankan      html  css  js  c++  java
  • JAVA学习第三十二课(经常使用对象API)- 基本数据类型对象包装类

    将基本数据类型(8种:int..)封装成对象的优点就是能够在对象中封装很多其它的功能和方法来操控该数据

    常见的操作就是:用于基本数据类型与字符串之间的转换

    基本数据类型对象包装类一般用于基本类型和字符串之间的转换

    基本类型----->字符串

    1.基本类型数值+""

    2.用string类中的valueOf(基本类型数值)

    3.用Integer.ValueOf();

    字符串-->基本类型数值

    1.使用包装类中的静态方法XXX  parseXXX("XXXX")比方:int parseInt("123")/boolean parseBoolean("true"),可是Character没有parse。多余

    2.假设字符串被Integer进行对象的封装

    可使用非静态的方法intValue()

    将一个Integer对象转成基本类型数值

    (先将字符串封装成对象,然后再用XXXValue转换)

     
    
    public class Main {
    	public static void main(String[] args)
    	{	/*
    		 * 基本数据类型包装类
    		 * 为了方便基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作
    		 * 用于描写叙述该对象的类就是基本数据类型包装类
    		 * 
    		 * byte Byte
    		 * short Shrot
    		 * int Integer
    		 * long Long
    		 * double Double
    		 * char Character
    		 * boolean Boolean
    		 * 
    		 */
    		
    		int num;
    		System.out.println(Integer.MAX_VALUE);//int的最大值	2147483647
    		
    		System.out.println( Integer.toBinaryString(6));//转换成二进制
    		Integer x = new Integer("4");
    		//System.out.println(x);
    		int xx = Integer.parseInt("1234");//将字符串转化为int。且parseInt方法是静态的
    		System.out.println(xx);
    		if(Boolean.parseBoolean("true"))
    		{
    			Integer xInteger = new Integer("123");
    <span style="white-space:pre">		</span>System.out.println(xInteger.intValue());//将"123"转化为int
    		
    	}
    
    }

    进制转换

     
    
    public class Main {
    	public static void main(String[] args)
    	{	
    		/*十进制 -> 其它进制*/
    		System.out.println(Integer.toBinaryString(6));//二进制
    		System.out.println(Integer.toOctalString(10));//八进制
    		System.out.println(Integer.toHexString(20));//十六进制
    		System.out.println(Integer.toString(50, 4));//把50以 四进制 的表现
    		
    		/*其它进制  ->  十进制*/
    		
    		System.out.println(Integer.parseInt("110",2));//将110视为二进制的表现形式。并将其转换为十进制
    		System.out.println(Integer.parseInt("3C",16));
    	}
    
    }
    

    自己主动装箱拆箱

    public class Main {
    	public static void main(String[] args)
    	{	
    		Integer a = new Integer("3");
    		Integer b = new Integer(3);
    		System.out.println(a == b);//两个new地址肯定不一样
    		System.out.println(a.equals(b));//equals比較的是内容
    		
    		System.out.println(a.compareTo(b));
    		
    		int num = 5;
    		num++;
    		Integer xInteger = 5;//xInteger = new Integer(5)->自己主动装箱
    		xInteger++;//XInteger = XInteger + 1   实际操作   xInteger = new Integer(xInteger.intValue()+1)
    		//注意异常
    		
    		//JDK1.5以后,自己主动装箱,假设装箱是一个字节,那么该数据会被共享,不会又一次开辟空间
    		Integer x = 128;
    		Integer y = 128;
    		System.out.println(x == y);//也就是128曾经true,128及128以后是false
    		System.out.println(x.equals(y));//true
    	}
    }


    关于自己主动装箱与拆箱:基本数据类型值赋值给了引用数据类型值才装箱,和基本数据类型做运算时才拆箱。

    练习:

    import java.util.Arrays;
    
    /*
     * 对一个字符串中的数值进行从小到大的排序
     * "123 2 5 652 7 -3 4 456 456 12 489"
     */
    public class Main {
    	private static final String SPS_SIGAL = " ";//ctrl+shift+X小写变大写,大写变小写+Y
    	
    	public static void main(String[] args) {
    		String str = "123 2 5 652 7 -3 4 456 456 12 489";
    
    		String[] arr = StringToArray(str);
    
    		int aa[] = StringToInt(arr);
    
    		sort(aa);
    
    		StringBuilder string = IntToString(aa);
    
    		show(string);
    
    	}
    
    	public static StringBuilder IntToString(int[] arr) {
    		StringBuilder SB = new StringBuilder();
    		for (int i = 0; i < arr.length; i++) {
    			if (i == arr.length - 1)
    				SB.append(arr[i]);
    			else
    				SB.append(arr[i] + ",");
    		}
    		return SB;
    	}
    
    	public static int[] StringToInt(String[] arr) {
    		int aa[] = new int[arr.length];
    		for (int i = 0; i < arr.length; i++) {
    			aa[i] = Integer.parseInt(arr[i]);
    		}
    		return aa;
    	}
    
    	public static String[] StringToArray(String str) {
    		String[] arr = str.split(SPS_SIGAL);
    		return arr;
    	}
    
    	public static void sort(int[] arr) {
    		Arrays.sort(arr);// Arrays类中提供了排序方法
    		/*
    		 * for(int i = 0;i<arr.length-1;i++) { for(int j =
    		 * 0;j<arr.length-1-i;j++) { if(arr[j] > arr[j+1]) swap(arr,j,j+1); } }
    		 */
    	}
    
    	public static void swap(int[] arr, int i, int j) {
    		int t = arr[i];
    		arr[i] = arr[j];
    		arr[j] = t;
    	}
    
    	public static void show(StringBuilder string) {
    		System.out.println(string);
    	}
    }
    



  • 相关阅读:
    AtCoder Beginner Contest 205
    Codeforces Round #725 (Div. 3)
    Educational Codeforces Round 110 (Rated for Div. 2)【A
    Codeforces Round #722 (Div. 2)
    AtCoder Beginner Contest 203(Sponsored by Panasonic)
    AISing Programming Contest 2021(AtCoder Beginner Contest 202)
    PTA 520 钻石争霸赛 2021
    Educational Codeforces Round 109 (Rated for Div. 2)【ABCD】
    AtCoder Beginner Contest 200 E
    Educational Codeforces Round 108 (Rated for Div. 2)【ABCD】
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7305614.html
Copyright © 2011-2022 走看看