字符串相关操作、问题及算法提纲

来源:互联网 发布:淘宝三唑仑网上什么卖 编辑:程序博客网 时间:2024/05/01 07:56

这两天leetcode做完了三分之一,开始遇到瓶颈了,二叉树、链表、一般的排序啥的都没有问题,但是复杂的数据结构和算法还是需要补一下的。今天开始看字符串相关的算法,感觉JAVA字符串相关的题目还是不少的,所以开始总结一下。


一、String、StringBuffer类自带的常用方法

1.charAt(int) 获取指定位置的字符

2.equals() 注:如果用String a="a";String b="a"; 是可以用a==b来判断的。但是String b=new String("a")不行

3.equalsIgnoreCase()忽略大小写

4.indexOf(char/String a, int b) 返回从b位置开始a第一次出现的位置。b可以省略

5.lastIndexOf()同上,从下面查找

6.toCharArray()转换成字符数组

7.split()切割字符串

8.substring(int i,int j)返回从位置i至j-1的子串

9.toUpperCase()转换为大写

10.trim()去掉两端多余空格。


StringBuffer是线程安全,StringBuilder不是,但是后者更快。用于字符串的构建。

append(a) 插入a可以是int string boolean等多种类型。

insert(i,a)在i位置插入,a类型同上。

delete(i,j)删除从i到j的字符串

deleteCharAt(i)删除i位置的char

replace(i,j,string)

reverse()字符串反转

Integer.parseInt(str)字符串转基本类型


二、字符串相关问题

1.字符串匹配问题(BF,KMP,RK,BM)

2.字符串反转(StringBuilder)


三、字符串相关算法

主要是KMP,复杂度O(n),网上搜了几篇文章,其实还算好理解。



0 0
原创粉丝点击