Java 字符串Split方法的一个坑

java字符串的split,只传一个参数,后面空白的字符串会被忽略:

 public static void main(String[] args) {
        String str = "ab|c||";
        String [] split = str.split("\\|");
        System.out.println(Arrays.toString(split));
    }

输出结果是[ab, c]

解决方法是split第二个参数传一个负数,例如

 public static void main(String[] args) {
        String str = "ab|c||";
        String [] split = str.split("\\|",-1);
        System.out.println(Arrays.toString(split));
    }

输出[ab, c, , ]

时间: 2024-12-13 02:25:10

Java 字符串Split方法的一个坑的相关文章

字符串split操作到底有多少坑

微信公众号 长字符串切分,取其中元素封装或者将封装信息组合成长字符串都是常规操作,但是这种长字符串往往是不可控的,如一个长字符串就是由一个元素组成,或者存在空字符串的元素,看似这并没有什么问题,但是使用不同工具类的split方法进行切分结果是完全不同的.不知道你是否遇到这样的坑,下面一起来看看. String类自带的split方法 直接使用String本身自带的split方法,看对不同字符串的切分结果. 没有分隔符的字符串 //str = "1" public static void

不同浏览器下js的字符串split方法的差异

嘛,最近在各种直接拿代码调试,发现的问题可能稍微多了一点,姑且都记下来,这个随笔以后可能会不定期更新,因为相信不同浏览器之间各种差异还是很多的. 直接上代码 1 <html> 2 <head> 3 </head> 4 5 <body> 6 <script> 7 var str = "/part1/part2"; 8 var _list = str.split(/[\\/]/); 9 for(var i = 0; i <

【Java记录】try-with-resources的一个坑

[Java记录]try-with-resources的一个坑 今天处理 AsynchronousFileChannel 时候的一个问题,代码如下: public static void main(String[] args) throws Exception { String filePath = "/home/xe/git/osc/JavaNote/Lang/data/Test.java"; ExecutorService executorService = Executors.ne

java String.split方法是用注意点(转)

转自:http://www.blogjava.net/fanyingjie/archive/2010/08/05/328059.html 在java.lang包中有String.split()方法,返回是一个数组我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2.如果用“|”作为分隔的话,必须是如下写法:Stri

【java解惑】java字符串替换方法使用

    如下代码: public class Example020 { public static void main(String[] args) { String separator = File.separator; String clazzName = Example020.class.getName(); String rs1 = clazzName.replace(".", separator); // 方法1 String rs2 = clazzName.replaceA

java 反射的踩的一个坑

今天工作的时候用到了一个反射.其业务简单描述为:系统启动时将需要定时调用的方法签名保存到数据库中,开启线程定时从数据库中读取对应的方法签名,通过反射生成实例后调用方法.完成一定的定时任务. 写到的方法签名如下 public Class A{ public void  statistics( Member member, boolean flag )   // 这么写是错的. } 调用  A.class().getMethod("statistics", Member.class, Bo

模拟java的split函数,分割字符串,类似于java的split方法

/*自定义oracle的分割函数*//*定义一个type,用户接收返回的数据集合*/create or replace type splitType as table of varchar2(4000); /* 参数1: 被分割的字符串 参数2:分割字符串,默认是英文逗号*/create or replace function split_str(str varchar2, split_char varchar2:=',') return splitType pipelinedis idx nu

Java 利用 split 方法切割字符串

之前经常遇到切割字符串的情况,这里把常见的场景总结一下: 1 // 以空格切割 2 String s1 = "dew qefdewrfr freqg gtrh yt hy"; 3 String[] words1 = s1.split("\\s+"); 4 5 // 以 . 切割 6 String s2 = "dew.qefdewrfr.freqg.gtrh.yt.hy"; 7 String[] words2 = s2.split("\\

java中split方法的用法

想搞清楚这个问题的原因就是我无法把一个文本里的单词全部给找出来,因为接触C++的时候记得好像regex可以有好多个字符组成,这样就可以通过,.!和空格等标点来分割文本了,但是split的方法所接受的参数只有String类型的regex和int类型的limit,limit用来表示最多可以将字符串分成多少部分.后来通过在网上查找资料才知道原来String类型的regex可以由多部分组成,每个部分分别由 | 隔开,对于可能要出现的* + .等符号,可能需要 \\ 的转义,具体注意事项有以下几个部分: