字符串部分常用操作

字符串包含关系

String a ="hello world";
String b ="world";

.contains()b是a的字符串字串/子字符串
a就包含b

   String a="hello world";
    String b="world";
    System.out.println(a.contains(b));

结果true 证明包含

    String a="hello world";
    String b="worldd";
    System.out.println(a.contains(b));

结果false证明不包含

indexOf()从头查找指定字符串的位置下表从0开始,如果查到了返回位置的索引,查不到返回-1(返回的是第一个内容的下标)

    String a="hello world";
    String b="world";
    System.out.println(a.indexOf(b));

这里的结果是6

返回字符串中所有相同字段的下标依然采用indexOf()方法只是参数上略有不同(这里采用两个相同字段的方式展示这种思路,如果字段过多,字符串过长可以采用循环的方式)

    String a="hello world world";
    String b="world";
    int result=a.indexOf(b);
    System.out.println(a.indexOf(b));
    result =a.indexOf(b,result+1);
    System.out.println(result);

结果为6 12

.lastIndexOf()由后向前查找字符串内容还可表示从指定位置向前查找
.startsWith()从指定位置判断是否以指定字符串开头
.endsWith()判断是否以指定字符结尾
.startsWith()、startsWith() 通常用于判定协议类型和文件类型

字符串替换
由于String是不可变换对象,针对字符串的替换操作,并没有修改字符串自身,而是生成了新的字符串

String a="hello world world";
String b="world";
String str=a.replaceAll(b,"java");
System.out.println(str);
String str2=a.replaceFirst(b,"java");
System.out.println(str2);
System.out.println(a);
hello java java
hello java world
hello world world

replaceAll()是替换所有的内容而.replaceFirst()是替换第一个内容
在这里插入图片描述
String regex 正则表达式
正则表达式:使用一些特殊的字符来表示某些字符串的筛选标准
l例如包含某些字符,以xxx开头以xxx结尾xxx重复出现n次…

字符串的切分/拆分
按照一定的分隔符,把字符串分成几个部分,把这些部分放到一个数组中去。

通过.split()来拆分字符串

    String a="hello world java";
    String[] s= a.split(" ");
    System.out.println(Arrays.toString(s));

用处比较多的地方就是日志
合并字符串
在java中直接用+就可以合并,有些语言库中还存与split()对立的join()来实现拼接合并

正则表达式中有许多特殊含义‘.’也是其中之一解决这个问题需要使用正则表达式中转义字符
正则表达式遇到一个.当作特殊符号来对待
正则表达式对.当作.来看待
而java又把\当作java的转义字符来看待,为了表示原始的\需要再次转义则为
”\.“
例(IP地址)
两次转义一次java一次正则转义

        String a="192.168.0.1";
        String[] b=a.split("\\.");
        System.out.println(Arrays.toString(b));

输出结果

[192, 168, 0, 1]

字符串截取

  //[beg,end)
    String a="Hello world java";
    System.out.println(a.substring(6,11));

取消空白字符

        String a="          Hello world java    \n ";
        System.out.println("["+a.trim()+"]");
[Hello world java]

这里可以看到两边的空白字符都被删除了

字符串内部大小写转换

        String a="hello";
        String b="HELLO";
        System.out.println(b.toLowerCase());
        System.out.println(a.toUpperCase());

大写转小写toLowerCase()
小写转大写.toUpperCase()


hello
HELLO

字符串判空
isEmty()
在这里插入图片描述
判断的是空字符串和空引用无关

StringBuffer和StringBuilder
直接用String拼接字符串,效率很低
使用StringBuilder调用append就是直接把参数拼接到原来内存的末尾
不必担心append拼接的内容过多,StringBuilder会自动扩容
在这里插入图片描述
直接修改本身
在这里插入图片描述
删除操作
在这里插入图片描述
这里的2,4是不包括2和4对应的元素本身的
插入操作
在这里插入图片描述
从第二个元素后插入新的字符串
StringBuilder和StringBuffer核心区别
StringBuilder线程不安全
StringBuffer线程安全(使用同步处理所以安全)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值