String split on multicharacter delimiter
/**************************************************************************************
* Copyright (c) Jonas Bonr, Alexandre Vasseur. All rights reserved. *
* http://aspectwerkz.codehaus.org *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the LGPL license *
* a copy of which has been included with this distribution in the license.txt file. *
**************************************************************************************/
import java.util.List;
import java.util.ArrayList;
/**
* Utility methods for strings.
*
* @author <a href="mailto:jboner@codehaus.org">Jonas Bonr </a>
*/
public class Strings {
/**
* String split on multicharacter delimiter. <p/>Written by Tim Quinn (tim.quinn@honeywell.com)
*
* @param stringToSplit
* @param delimiter
* @return
*/
public static final String[] splitString(String stringToSplit, String delimiter) {
String[] aRet;
int iLast;
int iFrom;
int iFound;
int iRecords;
// return Blank Array if stringToSplit == "")
if (stringToSplit.equals("")) {
return new String[0];
}
// count Field Entries
iFrom = 0;
iRecords = 0;
while (true) {
iFound = stringToSplit.indexOf(delimiter, iFrom);
if (iFound == -1) {
break;
}
iRecords++;
iFrom = iFound + delimiter.length();
}
iRecords = iRecords + 1;
// populate aRet[]
aRet = new String[iRecords];
if (iRecords == 1) {
aRet[0] = stringToSplit;
} else {
iLast = 0;
iFrom = 0;
iFound = 0;
for (int i = 0; i < iRecords; i++) {
iFound = stringToSplit.indexOf(delimiter, iFrom);
if (iFound == -1) { // at End
aRet[i] = stringToSplit.substring(iLast + delimiter.length(), stringToSplit.length());
} else if (iFound == 0) { // at Beginning
aRet[i] = "";
} else { // somewhere in middle
aRet[i] = stringToSplit.substring(iFrom, iFound);
}
iLast = iFound;
iFrom = iFound + delimiter.length();
}
}
return aRet;
}
}
Related examples in the same category
1. | The string passed to the split method is a regular expression | | |
2. | String.split(): " s".split(" ") -> {"","","s"} | | |
3. | String.split(): "".split("") (one empty string value array) | | |
4. | String.split(): " ".split(" ") -> {} (Empty array) | | |
5. | String.split(): " ".split(" ") ->(Empty array too) | | |
6. | String.split(): " s ".split(" ") -> {"","","s"} (!) (space before and after) | | |
7. | " ".split(" ") generates a NullPointerException | | |
8. | Using split() with a space can be a problem | | |
9. | String.split() is based on regular expression | | |
10. | Split a string using String.split() | | |
11. | Split by dot | | |
12. | Special character needs to be escaped with a \ | | |
13. | Escape special character with a \ | | |
14. | Keep the empty strings | | |
15. | Specify a regular expression to match one or more spaces | | |
16. | Split a String | | |
17. | Using second argument in the String.split() method to control the maximum number of substrings generated by splitting a string. | | |
18. | Special characters needs to be escaped while providing them as delimeters like "." and "|". | | |
19. | Control the maximum number of substrings generated by splitting a string. | | |
20. | Split with regular expression | | |
21. | Pattern Splitting for space splittor | | |
22. | Split Strings with Patterns: split("[-/%]") | | |
23. | Use split() to extract substrings from a string. | | |
24. | Split on word boundaries. | | |
25. | Split same string on commas and zero or more spaces. | | |
26. | Split on word boundaries, but allow embedded periods and @. | | |
27. | Split on various punctuation and zero or more trailing spaces. | | |
28. | Parsing Character-Separated Data with a Regular Expression | | |
29. | Parse a line whose separator is a comma followed by a space | | |
30. | Parse a line with and's and or's | | |
31. | Split up a string into multiple strings based on a delimiter | | |
32. | Splits a String by Character type as returned by java.lang.Character.getType(char) | | |
33. | Splits a String by char: Groups of contiguous characters of the same type are returned as complete tokens. | | |
34. | Splits a string around matches of the given delimiter character. | | |
35. | Splits the provided text into an array with a maximum length, separators specified, preserving all tokens, including empty tokens created by adjacent separators. | | |
36. | Splits the provided text into an array with a maximum length, separators specified. | | |
37. | Splits the provided text into an array, separator specified, preserving all tokens, including empty tokens created by adjacent separators. | | |
38. | Splits the provided text into an array, separator specified. | | |
39. | Splits the provided text into an array, separator string specified. Returns a maximum of max substrings. | | |
40. | Splits the provided text into an array, separators specified, preserving all tokens, including empty tokens created by adjacent separators. | | |
41. | Splits the provided text into an array, separators specified. This is an alternative to using StringTokenizer. | | |
42. | Splits the provided text into an array, using whitespace as the separator, preserving all tokens, including empty tokens created by adjacent separators. | | |
43. | Break a string into tokens | | |
44. | Split the source into two strings at the first occurrence of the splitter Subsequent occurrences are not treated specially, and may be part of the second string. | | |
45. | Returns the first substring that is enclosed by the specified delimiters. | | |
46. | Split strings | | |
47. | Splits the provided text into a list, based on a given separator. | | |