欢迎访问宙启技术站
智能推送

如何使用Java函数截取子字符串?

发布时间:2023-06-19 23:15:39

在Java中,截取子字符串是一个常见的操作。例如,你可能需要在一个字符串中截取一个子字符串来提取有用的信息,或者你可以使用截取方法来限制一个字符串的长度。

Java提供了许多函数来截取子字符串。下面是其中一些最常用的函数。

1. substring()

substring()方法是Java中最常用的截取子字符串的方法之一。它允许你从一个字符串中提取一个子字符串,而不修改原始字符串本身。此方法有两个参数:开始位置和结束位置。开始位置是子字符串的 个字符在源字符串中的位置,而结束位置是子字符串的最后一个字符后面的位置。

例如,下面的代码截取了字符串"Hello, World!"的子字符串"World":

String str = "Hello, World!";
String subStr = str.substring(7, 12);
System.out.println(subStr); // 输出 "World"

注意,开始位置是包含在结果中的,而结束位置是不包含的。

如果你省略第二个参数,substring()方法将返回源字符串中从开始位置到字符串末尾的子字符串:

String str = "Hello, World!";
String subStr = str.substring(7);
System.out.println(subStr); // 输出 "World!"

2. StringBuilder或StringBuffer的substring()

与String类不同,StringBuilder或StringBuffer类的substring()方法会修改原始字符串本身。这是因为StringBuilder和StringBuffer是可变的字符串,而String是不可变的。

使用StringBuilder或StringBuffer的substring()方法与使用String的substring()方法非常相似。下面的代码截取了StringBuilder对象sb的子字符串:

StringBuilder sb = new StringBuilder("Hello, World!");
String subStr = sb.substring(7, 12);
System.out.println(subStr); // 输出 "World"

使用StringBuffer的substring()方法也是一样的。

3. split()

split()方法允许你通过指定一个分隔符来将字符串分割成多个子字符串。分隔符可以是任何字符或正则表达式。

例如,下面的代码将字符串"apple,banana,cherry"以逗号为分隔符分成三个子字符串:

String str = "apple,banana,cherry";
String[] subStrs = str.split(",");
for (String subStr : subStrs) {
    System.out.println(subStr);
}
// 输出 "apple"、"banana" 和 "cherry"

split()方法返回一个String数组,其中包含分割后的子字符串。

4. StringTokenizer类的nextToken()

除了split()方法,Java还提供了一个StringTokenizer类来将字符串分割为多个子字符串。使用StringTokenizer类需要在实例化时指定一个分隔符。然后,可以使用nextToken()方法逐个访问子字符串。

例如,下面的代码将字符串"apple,banana,cherry"以逗号为分隔符分成三个子字符串:

String str = "apple,banana,cherry";
StringTokenizer st = new StringTokenizer(str, ",");
while (st.hasMoreTokens()) {
    String subStr = st.nextToken();
    System.out.println(subStr);
}
// 输出 "apple"、"banana" 和 "cherry"

注意,每次调用nextToken()方法时,它返回的是分割符之间的子字符串,而不包含分隔符本身。

5. Apache Commons Lang库的StringUtils类的substring()

如果你使用的是Apache Commons Lang库,那么你可以使用StringUtils类中的substring()方法来截取子字符串。这个方法与String的substring()方法非常相似,但有一些区别。

例如,下面的代码截取字符串"Hello, World!"的子字符串"World":

String str = "Hello, World!";
String subStr = StringUtils.substring(str, 7, 12);
System.out.println(subStr); // 输出 "World"

需要注意的是,StringUtils的substring()方法允许你指定开始和结束位置的负数值。负数值表示从字符串末尾开始计算的位置。例如,如果要截取字符串的最后5个字符,可以这样做:

String str = "Hello, World!";
String subStr = StringUtils.substring(str, -5);
System.out.println(subStr); // 输出 "World!"

总结

截取子字符串是Java编程中一个常见的操作。Java提供了许多函数来执行此操作,包括substring()、StringBuilder或StringBuffer的substring()、split()、StringTokenizer类的nextToken()和Apache Commons Lang库的StringUtils类的substring()等。使用这些函数可以方便地截取字符串的子字符串,让你的代码更加简洁和易于理解。