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()

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

目录
相关文章
|
29天前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
142 83
|
4月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
77 1
|
1月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
108 60
|
29天前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
56 26
|
1月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
54 8
|
1月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
52 6
|
2月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
61 15
|
2月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
61 4
|
3月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
57 3