14-常用类
-
包装类:
-
每个基本数据类型对应一个引用数据类型,对应的这个引用数据就叫做包装类
-
位于: java.lang (java语言的基础包,可以不做显示的导入)
-
为什么要转?
- java对对象进行操作的
- 集合里面只能存引用数据类型
-
八大基本数据类型:
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);
}
}