Java 实例 - 字符串分割
以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:
JavaStringSplitEmp.java 文件
public class JavaStringSplitEmp {
public static void main(String args[]){
String str = "www-baidu-com";
String[] temp;
String delimeter = "-"; // 指定分割字符
temp = str.split(delimeter); // 分割字符串
// 普通 for 循环
for(int i =0; i < temp.length ; i++){
System.out.println(temp[i]);
System.out.println("");
}
System.out.println("------java for each循环输出的方法-----");
String str1 = "www.baidu.com";
String[] temp1;
String delimeter1 = "\\."; // 指定分割字符, . 号需要转义
temp1 = str1.split(delimeter1); // 分割字符串
for(String x : temp1){
System.out.println(x);
System.out.println("");
}
}
}
以上代码实例输出结果为:
- www
- baidu
- com
- ------java for each循环输出的方法-----
- www
- baidu
- com
在本例子中用到 String 类的 split 方法,其实在字符串分割时可以调用 StringTokenizer,实例化一个 StringTokenizer 的对象,通过 hasMoreTokens() 与 nextToken()进行判断并打印分割后的子字符串。具体代码如下:
import java.util.*;
import java.lang.*;
public class Main {
public static void main(String args[]) {
String str="www.baidu.com";
// 实例化对象,并指向以 . 对 str 进行分割
StringTokenizer str2=new StringTokenizer(str, ".");
// 对 str2 遍历并打印子字符串;
while(str2.hasMoreTokens()){
System.out.println(str2.nextToken());
}
}
}
输出结果为:
- www
- baidu
- com
split() 方法在分割字符串后,会从字符串数组的末端开始进行元素是否为空判断,如果为空,则数组长度 -1,一直判断到一个非空的元素后停止,而这个非空元素之前的空的 字符串 "" 会依旧保留。
public static void main(String[] args) {
String s1 = "123-123.2-1--";
String[] ss1 = s1.split("-");
System.out.println(ss1.length);//3
System.out.println(Arrays.toString(ss1));//[123, 123.2, 1]
String s2 = "123--123.2-1--";
String[] ss2 = s2.split("-");
System.out.println(ss2.length);//4
System.out.println(Arrays.toString(ss2));//[123, , 123.2, 1]
}