文档章节

Java用split函数进行分割字符串

潭州学院
 潭州学院
发布于 2015/05/27 19:14
字数 794
阅读 215
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

 java中,经常会对字符串进行分割,使用split方法把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:

public class StringSplit {

    public static void main(String[] args) {

        String sourceStr = "1,2,3,4,5";

        String[] sourceStrArray = sourceStr.split(",");

        for (int i = 0; i < sourceStrArray.length; i++) {

            System.out.println(sourceStrArray[i]);

        }

        // 最多分割出3个字符串

        int maxSplit = 3;

        sourceStrArray = sourceStr.split(",", maxSplit);

        for (int i = 0; i < sourceStrArray.length; i++) {

            System.out.println(sourceStrArray[i]);

        }

    }

}

输出结果:

输出结果

split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:

public class StringSplit {

    public static void main(String[] args) {

        String value = "192.168.128.33";

        // 注意要加\\,要不出不来,yeah

        String[] names = value.split("\\.");

        for (int i = 0; i < names.length; i++) {

            System.out.println(names[i]);

        }

    }

}

split分隔符总结

1.字符"|","*","+"都得加上转义字符,前面加上"\\"。2.而如果是"\",那么就得写成"\\\\"。3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 类允许应用程序将字符串分解为标记。StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。

代码示例

 

public class StringSplit {

    public static void main(String[] args) {

        String ip = "192.168.128.33";

        StringTokenizer token=new StringTokenizer(ip,".");  

        while(token.hasMoreElements()){  

         System.out.print(token.nextToken()+"  ");  

        } 

    }

}

但是StringTokenizer对于字符串"192.168..33"的分割,返回的字符串数组只有3个元素,对于两个分隔符之间的空字符串会忽略,这个要慎重使用。

但是String.split(String.split是用正则表达式匹配,所以不使用KMP字符串匹配算法)用的都是按顺序遍历的算法,时间复杂度O(m*n),较高,所以性能上,StringTokenizer好很多,对于频繁使用字符串分割的应用,例如etl数据处理,使用StringTokenizer性能可以提高很多。

小经验分享:

1、分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"\\",如split(\\|); 
2、如果用"\"作为分隔,就得写成这样:String.split("\\\\"),因为在Java中是用"\\"来表示"\"的,字符串得写成这样:String Str="a\\b\\c"; 
转义字符,必须得加"\\"; 
3、如果在一个字符串中有多个分隔符,可以用"|"作为连字符,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开; 

PS:JAVA新手交流群:457036818,欢迎大家来交流JAVA相关问题


潭州学院

潭州学院

粉丝 12
博文 23
码字总数 38387
作品 0
长沙
私信 提问
加载中
请先登录后再评论。
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.4K
6
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
619
1
SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet
2014/05/21
9.6K
0
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22

没有更多内容

加载失败,请刷新页面

加载更多

数据获取的小技巧

在大数据如此火的时代,我们要获取更多数据,就要进行数据采集,过滤,然后再进行使用。比如当我们在进行一个项目并且需要大量真实数据时,就需要通过爬虫去获得,有些爬取额数据还不能直接使用,...

xiaotaomi7
23分钟前
21
0
docker cp 容器和虚拟机间的数据拷贝

容器复制到主机 docker cp {container_name}:{source_path} {target_path}#例子: docker cp php:www/php.ini /home/alex/php.ini 主机复制到容器 docker cp {source_path} {container_nam......

关元
32分钟前
25
0
spring boot整合kafaka批量消费

spring boot整合kafaka批量消费: 配置文件: kafka: producer: bootstrap-servers: 127.0.0.1:9092 batch-size: 16785 #一次最多发送数据量 retries: 1 #发送失败后的重复发送次数 buffer-m...

漫步行者
36分钟前
7
0
最新苹果多屏电脑控制技术---ios群控/苹果群控/一键实时同步操作/入门安装步骤以及功能讲解

创联苹果群控是一款通过无线发送命令来操作主控手机来带动全部被控手机,主控手机怎么操作被控手机全部同步进行相同操作,支持一键每台手机输入不一样的文字!无需连接USB数据线、无需XP框架...

osc_bodzcw38
37分钟前
10
0
NOIP模拟赛 编码

题目描述 一个字符串str的p型编码a的定义如下:把str表示成b1个c1,b2个c2…bn个cn,然后将b1,c1,b2,c2,…,bn,cn收尾拼接成的字符串中最短的字符串设为a。例如:字符串122344111可被描述为"1个...

osc_wcs4pa6z
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部