目录
1、contains
字符串:局部包含
String s = "AbCdEfG";
String str1 = "AbC";
String str2 = "ACE";
//包含
if(s.contains(str1)) {
System.out.println("true1");
}else {
System.out.println("false1");
}
//不包含
if(s.contains(str2)) {
System.out.println("true2");
}else {
System.out.println("false2");
}
true1
false2
列表:全部包含
ArrayList<String> list = new ArrayList<>();
list.add("ABCDEFG");
list.add("abcdefg");
if(list.contains("ABC") || list.contains("abc")) {
System.out.println("true");
}else {
System.out.println("false");
}
false
对于判断字符串是否是 list 列表的局部:
ArrayList<String> list = new ArrayList<>();
list.add("ABCDEFG");
list.add("abcdefg");
for(String str : list) {
if(str.contains("ABC") || str.contains("abc")) {
System.out.println("true");
}else {
System.out.println("fasle");
}
}
true
true
2、Map & equals
Integer 要比较的话用 equals 方法
用 Map 记录字母出现的个数,对象是 Integer,Integer 会缓存频繁使用的数值,
数值范围为 - 128 到 127,在此范围内直接返回缓存值。超过该范围就会 new 一个对象, 这时用 == 判断就会出错;
3、最大公约数 & 最小公倍数
import java.util.ArrayList;
public class test {
//最大公约数
public static int getBig(int a, int b) {//两数
if (b == 0) return a;
return getBig(b, a % b);
}
public static int getMoreBig(int nums[], int n) { //多数
if (n == 1) return nums[n - 1];
return getBig(nums[n - 1], getMoreBig(nums, n - 1));
}
//最小公倍数
public static int getSmall(int a, int b) {//两数
return (a * b) / getBig(a, b);
}
public static int getMoreSmall(int nums[], int n) {//多数
if (n == 1) return nums[n - 1];
return getSmall(nums[n - 1], getMoreSmall(nums, n - 1));
}
public static void main(String[] args) {
int nums[] = {99, 66, 88};
//最大公约数
System.out.println(getBig(12, 3));
System.out.println(getMoreBig(nums, 3));
//最小公倍数
System.out.println(getSmall(16, 8));
System.out.println(getMoreSmall(nums, 3));
}
}
3
11
16
792
4、去除字符串的空格
- String.trim() 去掉首尾空格
- str.replace(" ", “”) 去掉所有空格,包括首尾、中间
- replaceAll(" +","") 去掉所有空格
- replaceAll("\\s*", “”)
可以替换大部分空白字符, 不限于空格
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
5、有关二维数组的定义
一、
LinkedList<List<Integer>> res = new LinkedList<>();
使用:
List<Integer> temp = new ArrayList<>();
res.addFirst(temp);
二、
List<List<Integer>> res = new ArrayList<List<Integer>>();
由于外层是 ArrayList, 则不能使用 addFirst 函数
6、字符串插入
insert(index, str);
public class InsertTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "Ijava!";
StringBuilder sb = new StringBuilder(str1);//构造StringBuilder对象
sb.insert(1, " love ");//在位置1插入指定的字符串
str = sb.toString();
System.out.println(str);
}
}
I love java!
7、按添加顺序保存元素:LinkedHashMap
public class Hashtest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "cacdbab";
LinkedHashMap<Character, String> map = new LinkedHashMap<>();
for(int i =0 ; i < str.length(); i++) {
char ch = str.charAt(i);
map.put(ch, map.getOrDefault(ch, "") + String.valueOf(ch));
}
System.out.println(map);
}
}
{c=cc, a=aa, d=d, b=bb}
8、排序(由大到小),优先队列
//words 是一个字符串数组
Arrays.sort(words, (s1, s2) -> s2.length() - s1.length());
map 是 HashMap<Integer, Integer> map = new HashMap<>();
PriorityQueue<Integer> maxHeap = new PriorityQueue<>((a, b) -> map.get(b) - map.get(a));//由大到小排列