一、数组方法
数组比较 Arrays.equals()
//重写equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Animal animal = (Animal) o;
return Objects.equals(name, animal.name) &&
Objects.equals(color, animal.color);
}
public class AnimalEquals {
public static void main(String[] args) {
//普通类型
int[] a = new int[]{1,2,3,4,5};
int[] b = new int[]{1,2,3,4,5};
//数组内容不能用系统提供的equals方法进行比较
System.out.println(a.equals(b));//false
System.out.println(Arrays.equals(a, b));//true
//引用类型
Animal a1 = new Animal("旺财","黄色");
Animal a2 = new Animal("旺财","黄色");
Animal a3 = new Animal("招财","黑色");
//在Animal类中重写了equals方法
System.out.println(a1.equals(a2));//true
System.out.println(a1.equals(a3));//false
}
}
数组打印 Arrays.toString()
@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", color='" + color + '\'' +
'}';
}
//测试类中
public class AnimalToString {
public static void main(String[] args) {
Animal a1 = new Animal("旺财","黄色");
Animal a2 = new Animal("招财","黑色");
//未重写toString方法打印:com.sxt.hw.arr.Animal@4554617c
//重写toString方法之后
System.out.println(a1.toString());//Animal{name='旺财', color='黄色'}
}
}
数组排序 Arrays.sort()
public class ArrSort {
public static void main(String[] args) {
int[] a = {12,34,5,67,88,76,54,3};
//普通打印
System.out.println(Arrays.toString(a));//[12, 34, 5, 67, 88, 76, 54, 3]
//排序打印
Arrays.sort(a);
System.out.println(Arrays.toString(a));//[3, 5, 12, 34, 54, 67, 76, 88]
}
}
数组内容查找 Arrays.binarySearch()
Arrays.binarySearch(查询数组,查询内容);
//查询不到:返回负数,查询到:返回下标
public class ArrSearch {
public static void main(String[] args) {
int[] a = {12,34,5,67,88,76,54,3};
//先排序
Arrays.sort(a);//[3, 5, 12, 34, 54, 67, 76, 88]
System.out.println(Arrays.toString(a));
//查找 5,若有返回下标
System.out.println(Arrays.binarySearch(a, 5));//1
//查找 20,没有返回负数
System.out.println(Arrays.binarySearch(a, 20));//-4
}
}
数组复制 Arrays. copyOf()、System.arraycopy()
//内部会创造一个数组
Arrays.copyOf(源数组,长度)
//要求先创造目标数组
System.arraycopy(源数组,源起始索引,目标数组,目标起始索引,长度)
public class ArrCopy {
public static void main(String[] args) {
int[] a = new int[]{63,43,82,1,34,73,24,53};
//将a 中的前五个元素 拷贝到新数组b中
int[] b = Arrays.copyOf(a,5);
System.out.println(Arrays.toString(b));//[63, 43, 82, 1, 34]
//将a中下标为456的元素 拷贝到c 中
int[] c = new int[3];
System.arraycopy(a,4,c,0,3);
System.out.println(Arrays.toString(c));//[34, 73, 24]
}
}
二、字符串相关类
构造函数
public class MyStr {
public static void main(String[] args) {
//String 创建空字符
String str1 = "";
//传入原始字符
String str2 = new String("你好,请Pick我!");
System.out.println(str2);//你好,请Pick我!
//字符数组创建String对象
char[] c = {'为', '我','撑','腰'};
String str3 = new String(c);
System.out.println(str3);//为我撑腰
String str4 = new String(c,2,2);
System.out.println(str4);//撑腰
//byte创建String对象
//先获取字节编码
char[] c1 = {'走','花','路','吧'};
String str5 = new String(c1);
System.out.println(Arrays.toString(str5.getBytes()));//[-24, -75, -80, -24, -118, -79, -24, -73, -81, -27, -112, -89]
byte[] b = {-24, -75, -80, -24, -118, -79, -24, -73, -81, -27, -112, -89};
String str6 = new String(b);
System.out.println(str6);//走花路吧
String str7 = new String(b,4,5);
System.out.println(str7);//��路
}
}
String
String的常用方法
返回字符串第i个字符 charAt(int i)
char[] c = {'中','国','女','孩','!'};
//返回字符串中第i个字符
String str1 = new String(c);
System.out.println(str1.charAt(1));//国
返回字符串长度 length()
//返回字符串长度
System.out.println(str1.length());//5
返回字符串中出现str的第一个位置 indexOf(String str)
//返回字符串中出现“女” 的第一个位置
System.out.println(str1.indexOf('女'));//2
返回字符串中从i开始出现str的第一个位置 indexOf(String str,int i)
//返回字符串中从下标3 开始的 出现“女”的第一个位置
System.out.println(str1.indexOf('女', 3));//-1,表示没有找到
比较字符串与i是否一样 equalsIgnoreCase(String i)
//比较两个字符串是否一样
String str2 = "abcdefghijklm";
String str3 = "ABCDEFGHIJKLM";
System.out.println(str2.equals(str3));//false
//忽略大小写
System.out.println(str2.equalsIgnoreCase(str3));//true
在字符串中new代替old replace(char old,char new)
//用新字符代替旧字符
String str4 = str1.replace('女','男');
System.out.println(str4);//中国男孩!
其他常用方法
public class MyStr3 {
public static void main(String[] args) {
String str1 = "abcdeFGHijklmn";
//判断字符是否以abc开头
System.out.println(str1.startsWith("abc"));//true
//判断字符是否以lmn结尾
System.out.println(str1.endsWith("cde"));//false
//返会一个字符串为该字符串的大写形式
String str2 = str1.toUpperCase();
System.out.println(str2);//ABCDEFGHIJKLMN
//返回一个字符串为该字符串的大写形式
String str3 = str2.toLowerCase();
System.out.println(str3);//abcdefghijklmn
//返回字符串从3开始到结尾的子字符串
String str4 = str1.substring(3);
System.out.println(str4);
//返回字符串从3开始到8的子字符串
String str5 = str1.substring(3,8);
System.out.println(str5);//deFGH
//去掉头尾的空格
String str6 = " 加油! ";
String str7 = str6.trim();
System.out.println(str7);//加油!
}
}