Java中的字符串拆分函数

No_*_*ulz 1 java string android

我有一个String,我想把它拆分为","

如果假设我有一个字符串,

 String test = "aa,bb,cc"; 
Run Code Online (Sandbox Code Playgroud)

现在我可以分开了,

String[] spl = test.split(",");
Run Code Online (Sandbox Code Playgroud)

spl.length3

如果假设我的字符串是

 String test = ",,,";
Run Code Online (Sandbox Code Playgroud)

这里分割的String 长度0.但我的预期答案是3.我的测试String是dynamaic值,它可能会有所不同,现在想我有一个类似的字符串

String test = ",aa,dd,,,,,ff,gg"

现在,分裂的数组长度为4.但我预期的答案是9 而我需要通过拆分""和我需要的氨基酸在位置SPL [1]DD位置SPL [2]FF位置SPL [7]

有人可以提出解决这个问题的建议吗?

The*_*ind 7

使用split()和-1作为限制

     public static void main(String[] args) {
    String test = ",,,";
    System.out.println(Arrays.toString(test.split(",", -1))); // adds leading and trailing empty Strings .
    // so effectively its like adding "" before , after and between each ","

    String test1 = "aa,bb,cc";
    System.out.println(Arrays.toString(test1.split(",",-1)));
}
Run Code Online (Sandbox Code Playgroud)

O/P:

[, , , ] -- > Length =4
[aa, bb, cc]
Run Code Online (Sandbox Code Playgroud)

  • Downvoters应该删除他们的downvotes,IMO. (2认同)
  • @all -My bad ..这确实返回4(忘记了当我们拆分时也会添加一个尾随空字符串.).. - 编辑我的答案. (2认同)
  • @TheLostMind好的,但你的答案仍然正确:)正如Dan Temple所说,当你有一个像'a,b,c`这样的字符串时,你有两个逗号,但是在分割之后,结果数组将保存三个值.因此,OP应该期望`,,,`将被分成四个值,而不是三个,这是错误的. (2认同)