Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Doubt in split()

 
cfish meena
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can anyone please help me to undertsand why the output of the program is 4.

public class splitTry {
public static void main(String[] args) {
String str="aaaaaaaaabb";
String[] s=str.split("a{3}");
System.out.println(s.length);
}
}
 
mallika arora
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
String str="aaaaaaaaabb";

When you split the above string using the given crieria(alpha numeric character at every 3rd position), it splits the String like this: "aaa", "aaa","aaa","bb"

and stores it in array at 0,1,2,3 index so the length is 4.
 
Neha Bhattad
Ranch Hand
Posts: 30
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
String = "boo:and:foo"
Calling String.split() with following regex:

RegexResult
:{ "boo", "and", "foo" }
o{ "b", "", ":and:f" }

When regex is "o" an empty string is created when "oo" is found in boo. Why is an empty string not found when the String splits on the last two "oo"??
In other words y is the array length 3 and not 4 with two empty strings?
 
sharathchandra edupuganti
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When you call the split function with only one argument ,then it assumes that the second argument of the split function is zero. And when the second argument is zero then the pattern will be applied as many times as possible, the array can have any length, and trailing empty strings will be discarded. This is the reason why you are not seeing the trailing empty strings.
 
Roland Schneider
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
@mallika arora:
The array contains after the split [, , , bb] so the length is 4.
[ October 10, 2007: Message edited by: Roland Schneider ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic