.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类的构造方法来创建字符串变量. 声明字符串: ...
随机推荐
- Ubuntu16.04中nginx除80之外其他端口不能访问
不废话, 大多数都以为是ufw防火墙的问题. 但我的是因iptables防火墙, 坑死我了. 查了好多也没查到怎么在Ubuntu关闭iptables, 索性直接卸载 apt-get remove ip ...
- Bomb 数位dp
---恢复内容开始--- 不能有49 数位dp模板题: #include<bits/stdc++.h> using namespace std; //input by bxd #defin ...
- 003 使用SpringMVC开发restful API--查询用户
一:介绍说明 1.介绍 2.restful api的成熟度 二:编写Restful API的测试用例 1.引入spring的测试框架 在effective pom中查找 2.新建测试包,测试类 3.测 ...
- LoadRunner脚本参数化之自动关联和手动关联
一.关联的意义 1.关联的含义 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的 ...
- 爬虫之xpath用法
导包用: from lxml import etree
- cmd使用notepad++为打开方式打开文件
想放一个txt进入vstart中,但是又不想用系统自带的记事本打开,想在vstart中双击时使用notepad++打开. cmd命令如下: "D:\notepad++\notepad++.e ...
- AngularJS之拖拽排序(ngDraggable.js)
ngDraggable.js是一款比较简单实用的angularJS拖拽插件,借助于封装好的一些自定义指令,能够快速的进行一些拖拽应用开发.首先先介绍一些基本的概念; ng-drop:是否允许放入拖拽元 ...
- fdisk
fdisk管理分区 参数 作用 m ...
- Unity容器的简单AOP与DI的应用Demo(基于asp.net mvc框架)
转发请注明出处:https://home.cnblogs.com/u/zhiyong-ITNote/ 整个Demo是基于Controller-Service-Repository架构设计的,每一层之间 ...
- Unity容器在asp.net mvc中的IOC应用及AOP应用
<asp.net-mvc框架揭秘>一书中,有个示例,是使用unity容器来注入自定义的控制器工厂.代码示例可以自己去下载源码,在这里我就不说了.IOC容器的本质是解耦的实例化接口类,而如何 ...