我的学习日记
常用类说明
- 用于说明 类/接口/枚举 类型的来自哪里(即包名)
- 叫什么(类名)
- 做什么(属性 方法 构造方法)
- 具体如何做(每个方法的使用都有具体的说明)
- java.lang 包下的所有类,在Java程序中使用时,都不需要导包
- 每个类都是用Object 作为超累
- 所有对象(包括数组)都实现这个类的方法
- hashCode():理解为对象在内存的位置信息
- toString() 以字符串的形式返回当前对象信息 ,建议每个子类都重写
//创建Object对象
Object obj = new Object();
Object obj1 = new Object();
boolean r1 = obj.equals(obj1);
System.out.println(r1);//结果:false
//===============================
1Object类的equals方法内部使用"=="判断对象得地址是否相等
- 2但是在实际开发中,更多的是比较兑现的内容
- 我们认为 两个对象的内容完全一致,就认为俩对象相等
- 所以,建议
Object的字类都重写equals,用于比较对象内容而非地址 - 3面试
equals和 "=="的区别?- 1 再
Object类中,都是比较对象得地址 - 2 在其他子类中,一般都重写了
equals,用于比较对象内容 - 3
equals试方法 - "
=="是运算符
Student s1 = new Student("李四",18,12);
Student s2 = new Student("李四",18,12);
boolean r2 = s1.equals(s2);
System.out.println(r2);//结果:true
//========================================
String类
- String是类,不能被继承
- Java程序中的所有字符串面值(如"abc")都作为此类的实例实现->程序中任何一个字符串值都是
String类的对象 - 字符串是常量:它们的值在创建之后不能更改
String newStr = "java".replace('a','A');//用'A'代替字符串中的'a'
System.out.println(newStr);//结果:jAvA
String newStr1 = "bigdata".replace("gd", "GD");//用"GD"代替字符串中的"gd"
System.out.println(newStr1);//结果:biGData
String newStr2 = "bi1g4da2ta".replaceAll("\\d", "");//""空字符串代替字符串中的所有数字,"\d"表示数字,"\"转义字符
System.out.println(newStr2);//结果:bigdata
String newStr3 = "b1i2g3data".replaceAll("[a-zA-Z]", "");//利用正则去除字母(包括大写和小写)
System.out.println(newStr3);//结果:123
String newStr4 = "你好aa123新朋友".replaceAll("\\W", "");// "/W"代表去除字母和数字以外的,如去除汉字
System.out.println(newStr4);//结果:aa123
//利用split()方法拆分字符串,用""匹配,返回String类型的数组
String[] split = "jjaavvaa".split("");
System.out.println(Arrays.toString(split));//利用Arrays.toString()方法将数组以字符数组的方式输出 返回值:[j, j, a, a, v, v, a, a]
String substring = "java".substring(1);//截取下标为1的字符传中的字符,字符串下标从0开始
System.out.println(substring);//结果:ava
//[beginIndex,endIndex)
String substring2 = "java".substring(1,3);
System.out.println(substring2);//结果:av
//String 类的toCharArray()方法将字符串转换成字符数组
char[] arr = "javabigdata".toCharArray();
System.out.println(arr);//结果:[j,a,v,a,b,i,g,d,a,t,a];
System.out.println(" ja va ".trim());//结果:java ,String类的trim()方法会去掉字符串中开头和结尾的空格
//static valueOf(参数) 可以将任意数据类型的数据转化为字符串返回
System.out.println(String.valueOf(true));//结果:true, true是字符串类型的字符串,不是布尔类型的true
//根据下标返回指定位置字符
char c1 = "java".charAt(1);
System.out.println(c1);//结果:j
//拼接
String s1 = "java".concat("666");
System.out.println(s1);//结果:java666
//判断是否包含
boolean r1 = "java".contains("av");
System.out.println(r1);//结果:true
//以前缀后缀开始
boolean r2 = "a.txt".startsWith("a");
System.out.println(r2);//结果:true
boolean r3 = "a.txt".endsWith("txt");
System.out.println(r3);//结果:true
String s2 = new String("java");//利用String类的有参构造创建对象
String s3 = new String("Java");
System.out.println(s2.equals(s3));
//结果:false 每创建一个对象都会是一个新的对象,在内存中的地址不一样,调用Object类的equals()方法进行比较就会返回false
byte[] bytes = "abcABC".getBytes();//通过String类的getBytes()方法获得字节数组
System.out.println(Arrays.toString(bytes));//结果:[97, 98, 99, 65, 66, 67]
//判断字符串中是否包含该字符,包含返回该字符的下标,不包含返回-1
int i1 = "java".indexOf('j');
System.out.println(i1);//结果:0
//判断字符串中是否包含该字符,从下标2开始.
int i2 = "java".indexOf('a',2);
System.out.println(i2);//结果:3
//判断字符串中是否包含制定的字符串
int i3 = "java".indexOf("av");
System.out.println(i3);//结果:1
//判断字符串的长度
int length = "".length();
System.out.println(length);//结果:0
//判断字符串是否为空
System.out.println("".isEmpty());//结果:true
byte[] bytes = {65,66,67,68,69,70};//创建一个字节数组
char[] chars = {'a','b','c'};//创建一个字符数组
//利用String类的有参构造方法,将bytes转换成字符串
String s2 = new String(bytes);
System.out.println(s2);//结果:ABCDEF
//利用String类的有参构造方法
String s3 = new String(bytes,2,2);//第一个2为下标 ,第二个2为长度
System.out.println(s3);//结果:CD
String s4 = new String("java");
System.out.println(s4);//结果:java
练习题
- 1 将字符串遍历,得到每个字符输出 “java” --> j a v a
- 2 字符串反转 “java” 返回 avaj
public static void main(String[] args) {
String m5 = m5("abc");
System.out.println(m5);
}
// 将字符串反转,再以字符串形式返回
public static String m5(String str) {
char[] charArray = str.toCharArray();
for(int i = 0;i < charArray.length/2;i++) {
char temp = charArray[i];
charArray[i] = charArray[charArray.length-1-i]; charArray[charArray.length-1-i] = temp;
}
//return new String(charArray);
return String.valueOf(charArray);
}
// 将字符串反转,再以字符串形式返回
public static String m4(String str) {
String r = "";
for(int i = str.length()-1;i > -1;i--) {
char charAt = str.charAt(i);
r += charAt;
}
return r;
}
// 将字符串遍历,得到每个字符输出,方法1
public static void m1(String str) {
String[] strArr = str.split("");
for (int i = 0; i < strArr.length; i++) {
char c = strArr[i].charAt(0);
System.out.println(c);
}
}
// 将字符串遍历,得到每个字符输出,方法2
public static void m2(String str) {
char[] charArray = str.toCharArray();
for (int i = 0; i < charArray.length; i++) {
System.out.println(charArray[i]);
}
}
// 将字符串遍历,得到每个字符输出,方法3
public static void m3(String str) {
for(int i = 0;i < str.length();i++) {
char charAt = str.charAt(i);
System.out.println(charAt);
}
}
由于本人太ben的原因,给自己看。
908

被折叠的 条评论
为什么被折叠?



