添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Java String.split拆分返回空数组?

今天在使用String.split时返回了一个空数组,第一次遇到这种情况,因为就算没有对原字符串进行拆分也应该返回一个长度唯一的装着原串的字符数组。

我的代码大致如下:

String s = "27.4";
String[] sArray = s.split(".");

后调试发现sArray是个空数组,于是前往查找资料发现:

String.split采用正则表达式,所以在使用“.”等特殊字符时时应该进行转义!!!

所以正确的写法应该是:

String s = "27.4";
String[] sArray = s.split("\\.");
                                    使用默认的split方法时,会默认丢弃字符串末尾的值,而字符串中间的值则会作为数组中的一项数据,不会被丢弃。1、如果 n 大于 0,代表分割字符串数组的最大长度,则模式将被最多应用 n  - 1 次,数组的长度将不会大于 n ,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。2、如果 n 为非正,代表获取数组所有值,不会丢弃末尾值,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。3、如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾字符串将被丢弃。
①spilt是正则表达式中的一种,用来切分字段,如果切分的字段连续出现,就会生成值。
用法为:字符串.spilt("特定字符"),输出结果为String[]类型。
String [] list = "abbcabcabc".spilt("b");
那么结果就是“a”,"","ca","ca","c";
②如果作为分离判断的的字符串在整个字符串
String str=";;;[email protected];[email protected];;[email protected];;;;";
System.out.println(str.split("\\;"));
    public static void main(String[] args) {
        String s = "aba";
        String[] strings = s.split("b");
        System.out.println("strings.length = " + strings.length);