1.字符串转数组
- 转字符数组:
String.toCharArray()
方法,返回char[] - 转字符串数组:
String.split()
方法,返回String[]
2.数组转字符串
方法1:直接在构造String时转换。
char[] data = {'a', 'b', 'c'};
String str = new String(data);
方法2:调用String类的方法转换。
String.valueOf(char[] ch)
方法一: 遍历
String[] arr = { "0", "1", "2", "3", "4", "5" };
// 遍历
StringBuffer str5 = new StringBuffer();
for (String s : arr) {
str5.append(s);
}
System.out.println(str5.toString()); // 012345
方法二: 使用StringUtils的join方法
//数组转字符串 org.apache.commons.lang3.StringUtils
String str3 = StringUtils.join(arr); // 数组转字符串,其实使用的也是遍历
System.out.println(str3); // 012345
String str4 = StringUtils.join(arr, ","); // 数组转字符串(逗号分隔)(推荐)
System.out.println(str4); // 0,1,2,3,4,5
方法三: 使用ArrayUtils的toString方法
// 数组转字符串 org.apache.commons.lang3.ArrayUtils
String str2 = ArrayUtils.toString(arr, ","); // 数组转字符串(逗号分隔,首尾加大括号)
System.out.println(str2); // {0,1,2,3,4,5}
方法四:使用Array.stream()类
String[] aaa={"11","22","33"};
String a= Arrays.stream(aaa).collect(Collectors.joining());
System.out.print(a); // 112233
3.相等判断(==与equals)
- 如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。
- 如果变量是引用类型,==运算符判断变量是否指向同一引用对象,equals判断变量"值"是否相等。
Java值类型对应的包装类(Boolean、Byte、Short、Integer、Long、Float、Double、Charcater)可以利用==运算符进行值判断。
4.StringBuffer类
StringBuffer与String相互转换
StringBuffer 用法小结
5.经典算法题:买卖股票的收益
分别涉及到了动态规划和贪心算法
I
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
II
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。
III
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。 样例: 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6
IV
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。
设计一个算法来找到最大的利润。你最多可以完成 k 笔交易。注意:你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票)
6.去除数组中的重复元素
- 遍历数组,将不重复的放入新数组,复杂度n^2
- 使用集合list的方法contains(),判断新数组中是否包含重复
- 使用无序不重复集合set来实现去重
java集合详解:Java集合类: Set、List、Map、Queue使用场景梳理
7.Object类
Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的三个常用方法:toString()、equals()、hashCode()。
Object类常用方法
Object类转换为其他实体类可以使用常用的强制类型转换:
- (int)
- (char)
- .toString
- String.valueOf()