.Net转Java.06.字符串的split的区别
在Java遇到了将类似“1|2|3|4”的字符串分隔为数组的功能
这种问题能难倒有着十多年开发经验的的.NET码农?
// Java代码
String s="1|2|3";
String[] array=s.split("|");
结果,出来的数组是这个鬼样子 1,|,2,|,3
仔细看看split传入的参数名,regex,是正则表达式,恍然大悟,要转义正则表达式……
// Java代码
String s="1|2|3";
String[] array=s.split("\\|");
问题解决后,继续手贱研究这个split,寻找.NET里边我的最爱选项 StringSplitOptions.RemoveEmptyEntries 在哪里?
索性做个试验
// Java代码
String s="1,2,3,,,";
String[] array=s.split(",");
// array的结果是1,2,3
难倒默认带RemoveEmptyEntries功能?
然后再试。。。
// Java代码
String s="1,2,,,3,,,";
String[] array=s.split(",");
// "1","2","","","3"
这结果算什么鬼???舍尾法的RemoveEmptyEntries,自动舍弃尾部空元素?跟.NET的老码农找不到频道啊。。。

好吧,就算如此,中间的空元素我自己可以过滤,如果我不想舍弃尾部的空元素可又咋整?
百度了半天,找到了解决方案 ,如果想保留尾部空元素,要传入limit=-1
// Java代码
String s="1,2,,,3,,,";
String[] array=s.split(",",-1); // 传入-1,保留尾部的空元素
// "1","2","","","3","","",""
好吧,我继续研究第二个参数limit
public String[] split(String regex, int limit)
从字面意思,应该是限制split返回数组元素的个数,
这个limit的含义倒是跟.NET的count参数非常类似
// C#代码
public String[] Split(String[] separator, int count, StringSplitOptions options)
如果limit或者count=n,表示匹配的次数为n-1
// C#代码
String s = "1|2|3|||4";
String[] array = s.Split(new String[] { "|" }, , StringSplitOptions.RemoveEmptyEntries);
// array的结果为{"1","2|3|||4"}
// Java代码
String s="1,2,,,3,,,";
String[] array=s.split(",",2);
// array的结果{"1","2,,,3,,,"}
看到这里,自以为都搞懂了
结果下面测试又让我郁闷了
// Java代码
String s1="";
String[] array1=s1.split(",");
// array1的结果是{""} 数组含1空元素 String s2=",";
String[] array2=s2.split(",");
// array2的结果是{} 数组含0元素
这结果我是真想12315投诉了。。。
.Net转Java.06.字符串的split的区别的更多相关文章
- Java空字符串与null的区别和判断字符串是否为空的方法
Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...
- Java 可变字符串StringBuilder/StringBuffer的区别
public class StringBuilder_and_StringBuffer { private static long SystemTime(){ return System.curren ...
- java中空字符串、null的区别
String 的null,或者赋值为"",有什么区别? 废话少说,上代码: public class EmptyAndNull { /** * @param args */ pub ...
- Java-Runoob-高级教程-实例-字符串:06. Java 实例 - 字符串查找
ylbtech-Java-Runoob-高级教程-实例-字符串:06. Java 实例 - 字符串查找 1.返回顶部 1. Java 实例 - 字符串搜索 Java 实例 以下实例使用了 Strin ...
- java String字符串
五.java数据类型之String(字符串) CreateTime--2017年7月21日16:17:45 Author:Marydon (一)数据格式 (二)初始化 // 方式一 String ...
- java截取字符串中的数字
java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...
- Java:字符串类String的功能介绍
在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了. 它的主要功能有如下几种:获取.判断.转换.替换.切割.字串的获取.大 ...
- 三种java 去掉字符串中的重复字符函数
三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...
- Java之字符串String,StringBuffer,StringBuilder
String类: String类即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用,用双引号括起来进行声明.在Java中用String类的构造方法来创建字符串变量. 声明字符串: ...
随机推荐
- 【Android】Android处理Home键方法小结
实验几次之后(android4.1 和android4.2)发现在单个的activity里面有以下几个方法可以使用: 方法1:onSaveInstanceState方法 下面这个方法可以处理home的 ...
- BZOJ3230 相似子串 字符串 SA ST表
原文链接http://www.cnblogs.com/zhouzhendong/p/9033092.html 题目传送门 - BZOJ3230 题意 给定字符串$s$.长度为$n$. 现在有$Q$组询 ...
- systemd创建自定义服务(Ubuntu)
/lib/systemd/system下创建test.service文件 vim /lib/systemd/system/test.service [Unit] Description=test [S ...
- IdentityServer4.AccessTokenValidation
IdentityServer4.AccessTokenValidation Authentication handler for ASP.NET Core 2 that allows acceptin ...
- URL简介
一般来说,http请求都会和URL地址有关,那么今天就来说说URL的组成部分. 实例:http://192.168.1.12/phpwind/searcher.php?keyword=phpwind& ...
- Painting the Fence Gym - 101911E(构造)
There is a beautiful fence near Monocarp's house. The fence consists of nn planks numbered from left ...
- 关于pycharm中安装第三方库时报错的解决办法(一)
记录自己的生活! 一.事发背景 在pycharm中直接安装第三方库时因为版本问题总是无法安装成功,事情不大,但是很重要. 二.经过 最开始我自己电脑上安装了Python3.6和Python2. ...
- 打印星星 - Python
打印星星是经典面试题目,考察流程控制中的循环和条件.本文对相关方法进行总结. 到的方法只要有(1)嵌套循环(2)center(3)format(^)(4)字符串乘法 # -*- coding:utf- ...
- 我与Vuex的第一次邂逅
new Vue({ // state data () { return { count: 0 } }, // view template: ` <div>{{ count }}</d ...
- Jenkins环境搭建(1)-下载与安装
Jenkins简介 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,它是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术. Jenk ...