String相关知识总结(1)

字符串的常见操作

1、字符串比较
a) 比较相等
b)比较大小
c)不区分大小写的比较

a) 比较相等
在上一篇博客中有提到,字符串String的比较相等不能用“==”,只能用 . equals。

” 和 .equals的区别:
”比较的是身份相等,而.equals比较的是字符串内容相等。
b)比较大小
字符串也可以比较大小,比较大小的判定规则是以字典序为准则。即比较首个字符的大小(Unicode的值等大小),如果首个字符能分出大小关系,两个字符串的大小关系就确定了,如果第一个字符比较不出来就继续比较下一个字符。

比较大小的工具是使用的 compareto的方法,之后会有详细解释。

2、字符串替换
使用一个指定的字符串来替换掉已有的字符串数据

具体使用方法如下:
1)public String replaceAll(String regex,String replacement) \\替换所有的内容
2)public String replaceFirst(String regex,String replacement) \\替换首个字符串中出现的内容
注意:由于字符串是不可变的对象,替换不修改当前的字符串,而是生成一个新的字符串。

3,字符串的查找
从一个完整的字符串之中可以判断指定内容是否存在,对于查找方法如下:
1)public boolean contains(CharSequence s \\判定一个字符串是否存在
2)public int indexOf(String str) \\ 从头开始查找指定字符串的位置,查到了返回位置的开始索引,如果查找不到就返回-1
3)pubic int indexOf(String str,int fromIndex) \\从指定位置开始索引,如果查找不到就返回-1
4)public int indexOf (String str,int fromIndex) \\由后向前查找字符串的位置
5)public int lastIndexOf(String str,int fromIndex) \\从指定位置由后向前查找
6)public boolean startsWith(String prefi) \\判断是否已指定字符串开头
7)public boolean stratsWith(String prefix,int toffset) \\从指定位置开始判定是否以指定字符串开头
8)public boolean endWith(String suffix) \ \判定是否以指定字符串结尾
在上述几种方法中,最好最简便的就是contains()

4、字符串的拆分
将一个完整的字符串按照指定的分隔符划分为若干子字符串

具体方法如下:
1、public String[] solit(String.rex) \\将字符串全部拆分
2、public String [] split(String regex,int limit) \\将字符串部分拆分,该数组长度就是limit极限

拆分是的注意事项:
1、字符“|”,“*”,“+”都要加上转义字符,前面加上“\”.
2、如果是“”,那么就要写成“\”,
3、如果一个字符串有多个分隔符,可以用“|”作为连字符

5、字符串截取
从一个完整的字符串中截取出一部分内容,具体方法如下:
1、public String substring(int beginIndex) \\从按指定索引到结尾
2、public String substring(int beginIndex,int endIndex) \\ 截取部分内容

6、字符串的其他操作
字符串相关操作众多,这里只列举几种相关操作。
1、trim()会去掉字符串开头和结尾的空白字符(空格、换行、制表符等)
2、toUpperCase()字符串的大小写转换
3、lenght()获取字符串的长度

7、StringBuffer和StringBuilder
根据String类的特点:任何的字符串常量都是Stringd对象,而且String的常量一旦声明不可改变,如果改变对象的内容,改变的只是它的引用指向而已。为了方便字符串的修改,提供StringBuffer类和StringBuiler类。

StringBuffer

String和StringBuffer最大的区别在于:String的内容无法修改,而StringBuffer的内容可以修改。频繁修改字符串的情况考虑使用StingBuffer
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

具体有如下实例:

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}

解释String、StringBuffer、StringBuilder的区别(面试常考):
1)String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
2)StringBuffer与StringBuilder大部分功能是相似的
3)StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值