Java中实现String字符串分割的3种方法
Java中实现String字符串分割的3种方法
方法1:split(string) 方法
使用了 split(string) 方法通过指定分隔符将字符串分割为数组
public class Test {
public static void main(String[] args) {
String a = "1-1-1-1";
String[] temp;
String delimiter = "-";// 指定分割字符
temp = a.split(delimiter);// 分割字符串
System.out.println(Arrays.toString(temp));//[1, 1, 1, 1]
for (int i = 0; i < temp.length; i++) { //for 循环
System.out.print(temp[i]); //1111
}
}
}
[1, 1, 1, 1]
1111
在java.lang包中有String.split()方法,返回是一个数组。“.”和“|”都是转义字符,必须得加"“;
如果用“.”作为分隔的话,必须是如下写法:String.split(”\.“),这样才能正确的分隔开,不能用String.split(”.“);
如果用“|”作为分隔的话,必须是如下写法:String.split(”\|“),这样才能正确的分隔开,不能用String.split(”|");
方法2:substring方法
substring(int beginIndex)该子字符串从beginIndex处的字符开始,直到此字符串末尾。
substring(int beginIndex, int endIndex)该子字符串从指定的 beginIndex 处开始,直到索引 endIndex – 1 处的字符。注意:其它一些语言第二个参数往往代表长度,JAVA不一样。该子字符串的长度为 endIndex-beginIndex。
public class Test2 {
public static void main(String[] args) {
String a = "1-1-1-1";
String str1 = a.substring(0,1);
System.out.println(str1);
String str2 = a.substring(2,3);
System.out.println(str2);
String str3 = a.substring(4,5);
System.out.println(str3);
String str4 = a.substring(6);
System.out.println(str4);
}
}
1111
方法3:StringTokenizer方法
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要讲一个字符串分解为一个一个的单词或者标记,可用StringTokenizer来解决
String 类的 split 方法,其实在字符串分割时可以调用 StringTokenizer,实例化一个 StringTokenizer 的对象,通过 hasMoreTokens() 与 nextToken()进行判断并打印分割后的子字符串。
public class Test {
public static void main(String[] args) {
String a = "1-1-1-1";
StringTokenizer result = new StringTokenizer(a,"-"); // 实例化对象,并指向以 - 对 a 进行分割
while(result.hasMoreTokens()){ // 对 result 遍历并打印子字符串;
System.out.println(result.nextToken());
}
}
}
1
1
1
1
扩展:JAVA 截取字符串的三种方法 subString,StringUtils,split
主要有以下几种方法:
1、通过subString()方法来进行字符串截取(最常用)
2、通过StringUtils提供的方法3
3、split()+正则表达式来进行截取
1、通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用法
第一种,传递一个参数:
public String substring(int beginIndex)
//该子字符串从指定索引处的字符开始,直到此字符串末尾。public String substring(int beginIndex)
//该子字符串从指定索引处的字符开始,直到此字符串末尾。
第二种,传递两个参数:
public String substring(int beginIndex, int endIndex)
//从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
//参数说明:beginIndex -- 起始索引(包括)、endIndex -- 结束索引(不包括)。
示例代码:
public static void main(String[] args) {
String Str = new String("hello wrold");
System.out.print("返回值,从第4位截取到字符串末尾 :" );
System.out.println(Str.substring(4) );
System.out.print("返回值,从第4位截取到第10位 :" );
System.out.println(Str.substring(4, 10) );
}
运行结果
返回值,从第4位截取到字符串末尾 : o wrold
返回值,从第4位截取到第10位 : o wrol
2、通过StringUtils提供的方法
//与第一种方法效果一样
StringUtils.substring("hello world", 4); // 返回值,从第4位截取到字符串末尾 : o wrold
StringUtils.substring("hello world", 4, 10); // 返回值,从第4位截取到第10位 : o wrol
//截取某个字符串之前的字符
StringUtils.substringBefore("hello world", "l");
//结果是:he 这里是以第一个”l”,为标准。
StringUtils.substringBeforeLast("hello world", "l");
//结果为:hello wor 这里以最后一个“l”为准。
//截取某个字符串之后的字符
StringUtils.substringAfter("hello world", "l");
//结果是:lo world 这里是以第一个”l”,为标准。
StringUtils.substringAfterLast("hello world", "l");
//结果为:d 这里以最后一个“l”为准。
//截取两个字符串之间隔的字符
StringUtils.substringBetween("hello world", "o");
//结果是: w 两个o之间的字符串。
StringUtils.substringBetween("hello world", "l", "r");
//结果是: lo wo 第一个字符“l”与第一个字符“r”之间的字符串
StringUtils.substringsBetween("hello world", "l", "r");
//结果是:数组 [lo wo] 第一个字符“l”与第一个字符“r”之间的字符串,以数组形式返回。
用StringUtils需要导入common-lang3包
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
3、split()+正则表达式来进行截取
将字符串按照分割符截取,以数组形式返回
String str = "hello, name, 12345, 6789";
String[] strs=str.split(",");
for(int i=0,len=strs.length;i<len;i++){
System.out.println(strs[i].toString());
}
运行结果
hello
name
12345
6789
到此这篇关于Java中实现String字符串分割的3种方法的文章就介绍到这了,更多相关java string字符串分割内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关文章