刷题好用的部分String方法

84 阅读3分钟

刷题好用的部分String方法

在leetcode刷题过程中,总是自己手写方法,一堆for循环真的苦恼,看到评论区大佬用简单几行搞定,才发现有很多好用的方法,这里先总结一下String常用的方法

使用方法都是

String s="sf";
s.split();

split(String regex) 、split(String regex,int limit)

返回:String[]

功能:按照指定的规则分割字符串,这个regex是规则,limit是切割成几段

用于:按照特殊规则分割字符串,可以将字符串分段处理

示例:这个方法并不会将分隔符去掉,只是出现分隔符时就切断一次,如下发现连续出现两次空格时,后一个空格会单独出现

image.png

concat(String str)

返回:String

功能:将指定的字符串连接到此字符串的末尾。

用于:拼接字符串时使用

备注:

contains(CharSequence s)

返回:boolean

功能:当且仅当此字符串包含指定的char值序列时,才返回true。

用于:简单查找子串的时候特别好用,时间复杂度O(n^2),空间复杂度O(1)。相当于暴力法,但是有些题目限制时间的时候,就不如KMP算法了。与之相似的还有int indexOf(String str, int fromIndex) ,找到第一个子串的位置下标,没有就是-1。两个方法可以看情况使用

示例:

image-20231027123532372

trim()

返回:String

功能:返回一个字符串,其值为此字符串,删除了所有前导和尾随空格

用于:有时题目要求处理空格或者单词,给的字符串有前导和尾随空格,实在麻烦,可以用于对字符串初步处理

示例:

image.png

toCharArray()

返回:char[]

功能:将String类型变成Char[]类型

用于:需要对字符串作单个字符处理时,统一变成char[]

示例:

String.join(CharSequence delimiter, CharSequence... elements)

返回:static String

功能:将字符串数组或者字符二维数组用特定的分隔符连接,最后合成一个字符串返回。参数delimiter是分隔符,elements是数组。

用于:但我们处理完传入的String字符串后,如果处理结果变成二维数组样式(String[]),需要传回对应格式的String时用这个

示例:用空格分隔的字符串返回

image.png

startsWith(String prefix) and endsWith(String suffix)

返回:boolean

功能:找到字符串是否以对应的前缀(后缀)开始(结束)

用于:在查找公共前缀,公共后缀时好用

示例:

toLowerCase() and toUpperCase()

返回:String

功能:改变所有字符串的大小写

用于:有些题目将提供的测试用例有大小一起来干扰我们,但实际上大小写对题目要求没有关系,只会影响我们条件判断,可以用这个统一处理

示例:

image.png

列题:

151.反转字符串中的单词(官方题解)

这里用正则表达式解决了split划分时的缺陷,所以以后刷题得好好学学正则表达式

image.png

14.最长公共前缀

来自评论区大佬的解法,用到了startsWith和substring

image.png

欢迎补充