No_Rulz
No_Rulz

Reputation: 2719

String split function in Java

I have a String and I want to split it by ","

If suppose I have a String like,

 String test = "aa,bb,cc"; 

now I can split it by,

String[] spl = test.split(",");

And the spl.length is 3

If suppose my String is

 String test = ",,,";

Here the splitted String length is 0. But my expected answer is 3. My test String is dynamaic value and it may varies like, Now think I have a String like

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

Now the splited array length is 4. But I expected answer is 9 And I need to split by "," and I need the aa position at spl[1] and dd position as spl[2] and ff position as spl[7]

Can someone give the suggestion about to solve this issue..

Upvotes: 1

Views: 293

Answers (3)

TheLostMind
TheLostMind

Reputation: 36304

Use split() with -1 as limit

     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)));
}

O/P :

[, , , ] -- > Length =4
[aa, bb, cc]

Upvotes: 7

PKlumpp
PKlumpp

Reputation: 5233

With the split() function, java separates a String by the Substring of your choice. If there is nothing between them, the field will not be null, it will just be skipped.

In other programming languages, you could come across something like this:

String example = ',,,'
String[] example2 = example.split(',')
print(example2.length())

This could also deliver 4. Because there are 4 spaces around the ',' chars:

1,2,3,4

Upvotes: 0

To get the behavior you want you can just replace "," by " ,":

String test = ",,";
test = test.replace(",", " ,");
System.out.println((test.split(",").length));

Upvotes: 2

Related Questions