Skip to content

Instantly share code, notes, and snippets.

@bit-twit
Last active August 29, 2015 14:07
Show Gist options
  • Select an option

  • Save bit-twit/2c3e13032e74435c4b0d to your computer and use it in GitHub Desktop.

Select an option

Save bit-twit/2c3e13032e74435c4b0d to your computer and use it in GitHub Desktop.
Java String.split() implementation is broken
package test;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
public class SplitTest {
public static void main(String[] args) {
String test = "//gws/bestprice//netbank-giro/";
String splitter = "//";
System.out.println("Test string: " + test);
System.out.println("Split by: '" + splitter + "'");
System.out.println();
String[] results = test.split(splitter);
System.out.println("String split() results: " + results.length);
for (int i = 0; i < results.length; i++) {
System.out.println("Token[" + i + "]" + results[i]);
}
System.out.println();
String[] pattern_results = Pattern.compile(splitter).split(test);
System.out.println("Pattern results: " + pattern_results.length);
for (int i = 0; i < pattern_results.length; i++) {
System.out.println("Token[" + i + "]" + pattern_results[i]);
}
System.out.println();
String[] lang3_results = StringUtils.split(test, splitter);
System.out.println("Lang3 results: " + lang3_results.length);
for (int i = 0; i < lang3_results.length; i++) {
System.out.println("Token[" + i + "]" + lang3_results[i]);
}
}
}
@bit-twit
Copy link
Author

Test string: /gws/bestprice//netbank-giro/
Split by: '/'

String split() results: 5
Token[0]
Token[1]gws
Token[2]bestprice
Token[3]
Token[4]netbank-giro

Pattern results: 5
Token[0]
Token[1]gws
Token[2]bestprice
Token[3]
Token[4]netbank-giro

Lang3 results: 3
Token[0]gws
Token[1]bestprice
Token[2]netbank-giro

@bit-twit
Copy link
Author

Test string: //gws/bestprice//netbank-giro/
Split by: '//'

String split() results: 3
Token[0]
Token[1]gws/bestprice
Token[2]netbank-giro/

Pattern results: 3
Token[0]
Token[1]gws/bestprice
Token[2]netbank-giro/

Lang3 results: 3
Token[0]gws
Token[1]bestprice
Token[2]netbank-giro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment