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

Java函数——如何获取一个字符串的子串?

发布时间:2023-05-28 10:09:03

字符串是常见的数据类型之一,在Java程序中,字符串通常表示文本信息。在处理字符串时,经常需要获取字符串的子串,即从原始字符串中截取部分文字形成新的字符串。获取字符串的子串在Java语言中非常简单,下面我们介绍几种方法。

1. substring方法

substring方法是Java语言中获取子串的最常用方法。该方法的用法很简单,其语法如下:

public String substring(int beginIndex, int endIndex)

其中,beginIndex是子串的起始位置,endIndex是子串的结束位置(不包括endIndex位置的字符)。例如,下面的代码截取了字符串"hello world"的子串"world":

String str = "hello world";
String substr = str.substring(6, 11);
System.out.println(substr); // 输出:world

需要注意的是,如果开始和结束位置超过了字符串的长度,substring方法会抛出IndexOutOfBoundsException异常。

如果我们只需要截取字符串的某一段长度,可以只传入一个参数,表示起始位置到字符串末尾的字符:

public String substring(int beginIndex)

例如,下面的代码截取了字符串"hello world"的子串"world":

String str = "hello world";
String substr = str.substring(6);
System.out.println(substr); // 输出:world

2. 可变字符序列方法

Java中还有一种可变字符序列的数据类型StringBuilder,该类提供了substring方法的重载。与String的substring方法类似,StringBuilder的substring方法也可以用来获取子串。其语法如下:

public String substring(int start, int end)

其中,start表示子串的起始位置,end表示子串的结束位置(不包括end位置的字符)。

与String类不同,StringBuilder类的substring方法返回的是一个新的StringBuilder对象。例如,我们可以使用以下代码获取StringBuilder对象的子串:

StringBuilder sb = new StringBuilder("hello world");
StringBuilder sub = sb.substring(6,11);
System.out.println(sub); // 输出:world

3. getChars方法

getChars方法是String类提供的方法之一,它可以将指定索引之间的字符拷贝到目标数组中。它的语法如下:

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

其中,srcBegin是源字符串的起始位置,srcEnd为源字符串的结束位置(不包括srcEnd位置的字符),dst是目标字符数组,dstBegin是目标字符数组的起始位置。

例如,我们想要获取源字符串"hello world"的子串"world",可以使用以下代码:

String str = "hello world";
char[] c = new char[5];
str.getChars(6, 11, c, 0);
String sub = new String(c);
System.out.println(sub); // 输出:world

4. split方法

split方法可以将字符串分割成一个字符串数组,并返回分割后的字符串数组中的某一个字符串。其语法如下:

public String[] split(String regex, int limit)

其中,regex是分割字符串的正则表达式,limit是分割后的字符串数组的最大长度。例如,我们可以使用以下代码获取"hello world"字符串的子串"world":

String str = "hello world";
String[] substr = str.split(" ");
System.out.println(substr[1]); // 输出:world

5. substringAfter方法

Apache Commons Lang库提供了一个很实用的字符串操作类– StringUtils,它提供了一些扩展的字符串处理方法。其中一个方法是substringAfter,它可以查找并返回指定分隔符之后的字符串。其语法如下:

public static String substringAfter(String str, String separator)

例如,以下代码返回字符串"hello world"的子串"world":

String str = "hello world";
String substr = StringUtils.substringAfter(str, " ");
System.out.println(substr); // 输出:world

总之,Java中获取字符串的子串有多种方法,我们可以根据实际情况选择最合适的方法。以上方法不仅适用于获取字符串的子串,也适用于其他需要处理字符串的场景。