14-常用类(一),包装类

14-常用类

  • 包装类:

    • 每个基本数据类型对应一个引用数据类型,对应的这个引用数据就叫做包装类

    • 位于: java.lang (java语言的基础包,可以不做显示的导入)

    • 为什么要转?

      1. java对对象进行操作的
      2. 集合里面只能存引用数据类型
    • 八大基本数据类型:

      1.数值型:(number) 首字母大写–>类

      ​ byte: -->Byte

      ​ short: -->Short

      ​ int: -->Integer

      ​ long: -->Long

      ​ float: -->Float

      ​ double: -->Double

      2.字符型:

      ​ char: -->Character

      3.布尔型:

      ​ boolean: -->Boolean

public class IntegerDemo {    
    public static void main(String[] args) {
		//[1]将基本数据类型转为包装类
    	Integer i1 = new Integer(21);   //-->通过构造方法得到的对象
    	Integer i2 = new Integer("21");
    	Integer i3 = Integer.valueOf(21);   //-->通过静态方法得到对象
    	System.out.println(i1);   //重写了object的toString方法
    	System.out.println(i2.toString());
    	
    	Float f1 = new Float("21.2");
    	Float f2 = Float.valueOf("21.3");
    
    	//[2]包装类和基本数据类型
    	Integer a1 =21;   //1.5  自动装箱  
    	int a2 = i1.intValue();   //自动拆箱
    	
    	//属性
    	System.out.println(Integer.MAX_VALUE);  
    	System.out.println(Integer.MIN_VALUE);
    	
    	//方法
    	System.out.println(i1==i2);   //==比较地址
    	System.out.println(i1.equals(i2));     //比较值
    	System.out.println("转为float类型:"+i1.floatValue());
    	System.out.println("哈希值:"+i1.hashCode());
    	System.out.println("二进制补码反转:"+i1.reverse(21));
    	System.out.println("十进制转为二进制数:"+Integer.toBinaryString(i1));
    	System.out.println("十进制转为八进制数:"+Integer.toOctalString(i1));
    	System.out.println("十进制转为十六进制数:"+Integer.toHexString(i1));
    	
    	//扩展
    	Integer aa = 17;        //127到-128 之间的值不在堆内存里面开空间
    	Integer bb = 17;
    	Integer cc = 128;
    	Integer dd = 128;
    	System.out.println(aa==bb);
    	System.out.println(cc==dd);
    	
    	//String 类型进行转换
    	int b = Integer.parseInt("21");   //String  -->  int
    	System.out.println(b);
    	Integer c = Integer.valueOf("21");    //String -->integer;
	}
}
  • String: 字符串类 位于java.lang
    • 不可变的字符序列(常量), 一旦创建其值不能改变(String类型存在共享区中的)
public class StringDemo {
	public static void main(String[] args) {
		String ss = "刘智";
				   ss="方程式";
       //创建String类型的对象
	  String s1 = "abc";     //相当于一个char类型的数组
	  String s2 = new String("ABC");    //有参构造创建对象
	  String s3 = new String ();   //无参构造创建对象
	  char[] c = new char[]{'a','b','c'};
	  char data[] = {'a', 'b', 'c'};
	  System.out.println(s1+s2+s3+c);
	  
	  
	  //方法:
	  //[1]length();   长度
	  System.out.println(s1.length());
	  //[2]equals;  比较
	  System.out.println(s1.equals(s2));
	  //[3]equalsIgnoreCase();忽略大小写
	  System.out.println(s1.equalsIgnoreCase(s2));
	  //[4]toUpperCase();  转大写
	  System.out.println(s1.toUpperCase());
	  //[5]toLowerCase();  转小写
	  System.out.println(s1.toLowerCase());
	  //[6]indexOf () ;   字符串查找
	  String str1 ="qingzilalala";   
	  System.out.println(str1.indexOf("z"));    //第一次出现这个Z的位置   下标从0开始
	  System.out.println(str1.indexOf("p"));   //找到返回索引,没有找到返回-1
	  System.out.println(str1.lastIndexOf("q"));   //最后一次出现q 是在下标为0的位置上
	  //[7]trim();  去掉字符创的前后空格,中间空格不去
	  String str2 = "   guo    dong    ";
	  System.out.println(str2.length());
	  str2 = str2.trim();
	  System.out.println(str2.length());
	  //[8]substring:字符串截取   
	  System.out.println(str1.substring(4));  //从下标为4的地方开始截取到最后
	  System.out.println(str1.subSequence(2, 5));     //包含开始,但不包含结束
	  System.out.println(str1.substring(2, 5));     //
	  //[9]split:字符串分割
	/*  Scanner input= new Scanner(System.in);
	  System.out.println("请输入一段歌词,以空格分隔:");
	  String music =input.nextLine();  //输出一整行
	  System.out.println();
	  String[] m  = music.split(" ");   //以空格来分割
	  System.out.println("for循环遍历");
	  for(int i =0; i<m.length;i++){
		  System.out.println(m[i]);
	  }
	  System.out.println("加强for");
	  for(String s: m){
		  System.out.println(s);
	  }*/
	//[10]字符串的判断和替换
	  String str3 ="xiaofeiqing";
	  System.out.println(str3.startsWith("x"));  //str3是x这个字符开头的么?
	  System.out.println(str3.replace("o", "你好"));
	  System.out.println("StringDemo.java".endsWith(".java"));  //是以.java结尾的么?
	  System.out.println(str3.contains("p"));   //里面有包含P么?
	  //[11] format : 格式化字符串
	  System.out.println(String.format("%d/%d=%d", 20,10,20/10));   //d:整数的
	  System.out.println(String.format("%f+%f=%f", 21.1,23.1,211+23.1)); 
	  System.out.println(String.format("%s+%s=%s","hello","kele","hellokele"));    //

	  //String 类型的转换
	  //基本数据类型转为String类型
	  System.out.println(String.valueOf(122));
	  System.out.println(String.valueOf(12.2));
	  //String 类型转为基本数据类型
	  System.out.println(Integer.parseInt("123"));
	  System.out.println(Double.parseDouble("12.3"));
	  System.out.println(Float.parseFloat("1.23"));
	}
}
  • Tips
public class StringDemo01 {

	public static void main(String[] args) {
		String str1 = "abc";
		String str2 = "abc";
		String str3 = new String("abc");
		String str4 = new String("abc");
		String str5 = "a"+"bc"+"";       //常量池中的数据是在编译期就确定的,编译直接存在字节码文件中
		String str6 = str1+"";    //这个是由于计算得来的,计算的操作数是通过变量
		
		System.out.println(str1==str2);
		System.out.println(str3==str4);
		System.out.println(str1==str3);    //
		System.out.println(str1==str5);
		System.out.println(str1==str6);
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_26270869/article/details/90055196
今日推荐