Java字符串操作

简介: replace(),IndexOf(),substring() ,lastIndexOf() ,split() ,pollFirst() ,pollFirst()

replace(pattern,replacement)
使用replacement替换pattern,如果pattern是字符串只替换第一个匹配项,如果pattern是正则表达式则替换每次匹配都要调用的回调函数。

实例:

String a = "+1(111)222-3333";
String b = a.replace("(", "").replace(")", "").replace("-", "");
System.out.println(b);

b = +11112223333。

IndexOf(value)
value:要查找的 Unicode 字符。
若能找到字符value则返回其在索引位置(这里为首次出现),如果没有返回-1;

实例:

  String a = "+1(111)222-3333";
        String s = "3";
        String b = String.valueOf(a.indexOf(s));
        System.out.println(s+" 第一次出现的位置为 :"+b);

3 第一次出现的位置为 :11。

substring(indexStart, indexEnd)
indexStart :需要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。
indexEnd:一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。(可无)。
返回值:包含给定字符串的指定部分的新字符串。

实例:

   String a = "asdfghjkl";
        String b = a.substring(2,6);
        System.out.println(b);

输出 : dfgh。

lastIndexOf(searchElement, fromIndex)

searchElement:被查找的元素。
fromIndex (可无):从此位置开始逆向查找。默认为查找长度(arr.length - 1)即整个数组都被查找。如果该值为负值,数组仍然会被从后向前查找。如果该值为负时,其绝对值大于数组长度,则方法返回 -1,即数组不会被查找。

返回值:数组中该元素最后一次出现的索引,如未找到返回-1。

备注 : 和Indexof()不同的是,这个方法可以规定范围,查找是范围内最后一次出现的索引,IndexOf则是首次出现。

实例:

  String a = "asdfghjkl";
        String b = String.valueOf(a.lastIndexOf("f",6));
        System.out.println(b);

输出 : 3。

String a = "asdfghjkl";
        int b = a.lastIndexOf("F");
        System.out.println(b);

目标字符串无“F”,输出 -1;

备注:lastIndexOf 使用严格相等(strict equality,即 ===)比较 searchElement 和数组中的元素。

split(separator,limit)

把一个字符串分割成字符串数组;

separator : 字符串或正则表达式,从该参数指定的地方分割;(可无);
limit: 该参数可指定返回的数组的最大长度。(可无,若无则整个字符串被分割);

返回值:一个字符串数组(不包括被分割前的字符串);

备注 : substring()分割字符串返回值为字符串,split()分割返回字符串数组。另spilt()分割字符串能力不如前者。

实例:

无参数:

var str="a k j h ?";
var n=str.split();

输出 :a k j h ?

var str="a k j h ?";
var n=str.split("");

输出 :a,k,j,h,?

单参数:

var str="a k j h ?";
var n=str.split(" ",3);

输出 :a k j h

pollFirst()

删除数组的第一个元素;

实例:

 TreeSet<String> set = new TreeSet<>();
        set.add("a");
        set.add("b");
        set.add("c");
        set.add("d");
        while (set.size()>0){
   
            System.out.print(" ");
            set.pollFirst();
            for(String a : set){
   
                System.out.print(a);
            }
        }

输出 :bcd cd d

pollFirst()

删除数组的最后一个元素;这个和上一个删除顺序相反。

目录
相关文章
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
699 108
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
1103 82
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
614 14
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
516 83
|
存储 缓存 安全
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
640 17
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
405 60
|
存储 缓存 安全
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
451 13
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
455 26
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
623 8