➤ 备忘 | Java 常用方法

类型转换

String 转 👉👉👉

char[]

1
char[] chs = str.toCharArray();

int

1
int i = Integer.parseInt("123");
1
int i = Integer.valueOf("123").intValue();

int 转 👉👉👉

String

1
2
Integer a = 10; String str = a.toString();
String str = Integer.toString(10);

Integer

1
Integer A = a; // 自动装箱

List 转 👉👉👉

int[](Java8)

1
2
List<Integer> list = Arrays.asList(1, 2, 3);
int[] array = list.stream().mapToInt(Integer::intValue).toArray();

Integer[](Java8)

1
Integer[] nums = list.toArray(Integer[]::new);

int[][](Java8)

1
int[][] ans = list.toArray(int[][]::new);

Integer[][](Java8)

1
int[][] ans = list.toArray(Integer[][]::new);

Set 转 👉👉👉

int[](Java8)

1
int[] array = setName.stream().mapToInt(Integer::intValue).toArray();

Integer[] 转 👉👉👉

List<Integer>

1
2
Integer[] arr = {1, 2, 3};
List<Integer> list = Arrays.asList(arr);

char[] 转 👉👉👉

String

1
String s = new String(ch);
1
String s = String.valueOf(ch);

List<Character>(Java8)

1
List<Character> list = new String(chs).chars().mapToObj(c -> (char) c).collect(Collectors.toList());

String 操作

字符串「比大小」

1
2
3
int a = "100".compareTo("100"); // 0
int b = "100".compareTo("101"); // 负数
int c = "101".compareTo("100"); // 正数

字符串「反转」

1
2
String str = "hello";
String reversed = new StringBuilder(str).reverse().toString();

字符串「查找 / 判断字符是否存在」

1
2
3
4
String s = "hello world";
int index = s.indexOf("world");
// 应用举例:判断字符串 y 中是否包含字符串 s 中的第 j 个字符:
if (y.indexOf(s.charAt(j)) != -1) // 不存在返回 -1

字符串「分割」

1
2
String s = "1,2,3,4,5";
String[] parts = s.split(",");
1
2
3
4
String s = "123456";
String s1 = s.substring(3); // 456
String s2 = s.substring(3, s.length()); // 456
String s3 = s.substring(0, 3); // 123

字符串「替换」

1
2
String s = "hello world";
String replaced = s.replace("world", "java"); // hello java

字符串「去空格」

1
2
String s = "  hello world  ";
String trimmed = s.trim();

字符串「大小写转换」

1
2
3
String s = "Hello World";
String lowerCase = s.toLowerCase();
String upperCase = s.toUpperCase();

字符串「二进制转换」

1
2
String binaryString = "1010110"; // 要转换的二进制字符串
int decimal = Integer.parseInt(binaryString, 2); // 86

Char 操作

字符「大小写转换」

1
2
Character.toLowerCase('A'); // a
Character.toUpperCase('a'); // A

字符「是否为数字」

1
2
Character.isDigit('c'); // false
Character.isDigit('5'); // true

字符「是否为字母」

1
Character.isLetter('c'); // true

字符「是否为大写/小写」

1
Character.isLowerCase('c'); // true

数组操作

数组「比较是否相等」

1
2
3
char[] str1 = s.toCharArray();
char[] str2 = t.toCharArray();
return Arrays.equals(str1, str2);

数组「深拷贝」

1
2
3
int[] oldArr = {1, 2, 3, 4};
int[] newArr = new int[oldArr.length];
System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);

数组「求和」(Java8)

1
2
int[] A = {6,7,8,2};
int sum = Arrays.stream(A).sum().getAsInt();

数组「最大最小值」(Java8)

1
2
int[] A = {6,7,8,2};
int max = Arrays.stream(A).max().getAsInt();
1
2
int[] A = {6,7,8,2};
int min = Arrays.stream(A).min().getAsInt();

数组「排序」

1
2
int[] nums = {3, 1, 4, 1, 5, 9, 2, 6, 5};
Arrays.sort(nums);

数组「查找」

1
2
int[] nums = {3, 1, 4, 1, 5, 9, 2, 6, 5};
int index = Arrays.binarySearch(nums, 5); // 4,第一次出现的索引

数组「拼接」

1
2
3
4
5
int[] nums1 = {1, 2, 3};
int[] nums2 = {4, 5, 6};
int[] nums3 = Arrays.copyOf(nums1, nums1.length + nums2.length);
System.arraycopy(nums2, 0, nums3, nums1.length, nums2.length);
// nums3 = {1, 2, 3, 4, 5, 6}

数学

最大公约数 gcd(a, b)

1
2
3
4
5
6
7
8
public int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
1
2
3
4
5
6
7
8
9
public int gcd(int a, int b) {
while (b != 0) {
a %= b;
a ^= b;
b ^= a;
a ^= b;
}
return a;
}

最小公倍数 lcm(a, b)

1
2
3
public int lcm(int a, int b) {
return a * b / gcd(a, b);
}

平方根

1
2
double x = 9;
double sqrt = Math.sqrt(x);

质数判断 isPrime(num)

1
2
3
4
5
6
7
8
9
10
11
public boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}

排序

根据数字大小重排 id

1
2
3
4
5
6
7
8
int[] a = new int[]{9, 19, 7}; // 升序重排索引后应该为 [2, 0, 1];
int n = a.length;
int[][] arr = new int[n][2];
for (int i = 0; i < n; i++) {
arr[i][0] = a[i];
arr[i][1] = i;
}
Arrays.sort(arr, Comparator.comparingInt(x -> x[0]));