Java 切割字符串的几种方式

按效率排:
1、StringTokenizer切割
是java.util中的一个类,包含的api有:
StringTokenizer的方法请参考上一篇。
其中,countTokens为length;nextToken可以获取它的下一个字符串,其中delim为分隔符。

2、..split("*")分割;
最方便,运用最多的,不解释。
String[] split = data.split("\n");
if (split != null && split.length != 0) {

        for (int i = 0; i < split.length-1; i++) {
            String[] split1 = split[i].split(":");
             ···
            }
        }

3、调用String自己的api subString()
运用2的代码块
String[] split = data.split("\n");
if (split != null && split.length != 0) {
for (int i = 0; i < split.length-1; i++) {
System.out.println(split[i]);

            String time = split[i].substring(0, 16);//前半部分 16为index
            System.out.println(time);
            String num = split[i].substring(17);//剩余部分  index +2;
            System.out.println(num);
            }
        }
输出结果:
    2019-01-08 21:55 136 
    2019-01-08 21:55 
    136 

    2019-01-08 22:00 86 
    2019-01-08 22:00 
    86 

    2019-01-08 22:04 136 
    2019-01-08 22:04 
    136 

    2019-01-08 22:09 86 
    2019-01-08 22:09 
    86 

    2019-01-08 22:12 136 
    2019-01-08 22:12 
    136 

其中上面的split[i].substring(0, 15);15是我字符串我这边功能需要写死了的,你可以通过indexOf(int ch)获取位置。

4、正则获取时间,然后.replaceAll(String regex,String replacement)那时间用” “代替,剩下的字符串就是时间以外的字符串了。

实例:
以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:
JavaStringSplitEmp.java 文件

public class JavaStringSplitEmp {
public static void main(String args[]){

  String str = "www-runoob-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.runoob.com";
  String[] temp1;
  String delimeter1 = "\\.";  // 指定分割字符, . 号需要转义
  temp1 = str1.split(delimeter1); // 分割字符串
  for(String x :  temp1){
     System.out.println(x);
     System.out.println("");
  }

}
}

以上代码实例输出结果为:
www

runoob

com

------java for each循环输出的方法-----
www

runoob

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.runoob.com"; 
    // 实例化对象,并指向以 . 对 str 进行分割
    StringTokenizer str2=new StringTokenizer(str, ".");
    // 对 str2 遍历并打印子字符串; 
    while(str2.hasMoreTokens()){ 
        System.out.println(str2.nextToken()); 
    }
}

}
输出结果为:
www
runoob
com

posted @   今天有你便安好  阅读(16226)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
阅读排行:
· 从零开始开发一个 MCP Server!
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
点击右上角即可分享
微信分享提示