Java中字符串的特性
在Java中String是引用数据类型。
注意比较相等与否使用equals函数。
- string与基本数据类型的转换:
- string类的常用方法
char charAt(int index)
int length()
boolean equals(Object anObject)
String concat(String str)
boolean endsWith(String suffix)
String[] split(String regex)
boolean startsWith(String prefix)
String substring(int beginIndex)
char[] toCharArray()
String trim()
contains(CharSequence chars)
isEmpty() - StringBuilder类
StringBuilder是线程不安全的,效率快
stringbuffer是线程安全的,效率低
常用类方法:
StringBuffer append(String s)
StringBuffer reverse()
delete(int start, int end)
insert(int offset, int i)
insert(int offset, String str)
replace(int start, int end, String str)
String toString()
常见题型
- 双指针法:其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。
- 反转系列:反转部分字符串等可以采用先整体反转再部分反转等技巧
- KMP:前缀表:当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。前缀:指不包含最后一个字符的所有以第一个字符开头的连续子串。后缀:指不包含第一个字符的所有以最后一个字符结尾的连续子串。
KMP
寻找前缀表,构建next数组。
- 初始化
- 前后缀相同的情况
- 前后缀不同的情况,回看