Java将字符串拆分为数组

Dus*_*san 91 java string split

我需要帮助这个split()方法.我有以下内容String:

String values = "0|0|0|1|||0|1|0|||";
Run Code Online (Sandbox Code Playgroud)

我需要将值放入数组中.有3种可能的字符串:"0","1"和""

我的问题是,当我尝试使用时split():

String[] array = values.split("\\|"); 
Run Code Online (Sandbox Code Playgroud)

我的值只保存到最后0.看起来像"|||"部分 被修剪.我究竟做错了什么?

谢谢

Mar*_*eel 132

这种行为明确记录在String.split(String regex)(强调我的):

此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样.因此,结尾的空字符串不包含在结果数组中.

如果你想要包含那些尾随空字符串,你需要使用String.split(String regex, int limit)负值作为第二个参数(limit):

String[] array = values.split("\\|", -1);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这正是我需要的.String array [] = myValues.split("\\ |", - 1); (6认同)

Lok*_*esh 25

试试这个

String[] array = values.split("\\|",-1); 
Run Code Online (Sandbox Code Playgroud)


S. *_*yol 9

考虑这个例子:

public class StringSplit {
  public static void main(String args[]) throws Exception{
    String testString = "Real|How|To|||";
    System.out.println
       (java.util.Arrays.toString(testString.split("\\|")));
    // output : [Real, How, To]
  }
}
Run Code Online (Sandbox Code Playgroud)

结果不包括"|"之间的空字符串 分隔器.保持空字符串:

public class StringSplit {
  public static void main(String args[]) throws Exception{
    String testString = "Real|How|To|||";
    System.out.println
       (java.util.Arrays.toString(testString.split("\\|", -1)));
    // output : [Real, How, To, , , ]
  }
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请访问以下网站:http://www.rgagnon.com/javadetails/java-0438.html