implode and explode string
/*
Copyright (c) 2009 Olivier Chafik, All Rights Reserved
This file is part of JNAerator (http://jnaerator.googlecode.com/).
JNAerator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
JNAerator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JNAerator. If not, see <http://www.gnu.org/licenses/>.
*/
//package org.ochafik.util.string;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtils {
public static String htmlize(String text) {
return text.startsWith("<?") || text.startsWith("<html>") ? text
: "<html><body>"
+ text.replace("&", "&").replace("<", "<")
.replace(">", ">").replace("\n", "<br>")
+ "</body></html>";
}
static Pattern spacePattern;
public static List<String> explode(String s) {
if (spacePattern == null) {
spacePattern = Pattern.compile("\\s+");
}
return explode(s, spacePattern);
}
public static List<String> explode(String s, String sep) {
StringTokenizer st = new StringTokenizer(s, sep);
List<String> v = new ArrayList<String>();
for (; st.hasMoreTokens();) {
v.add(st.nextToken());
}
return v;
}
/*
* public static final String implode(Object[] strings, String separator) {
* return implode(Arrays.asList(strings), separator); }
*/
public static String implode(double[] array, String separator) {
StringBuffer out = new StringBuffer();
boolean first = true;
for (double v : array) {
if (first)
first = false;
else
out.append(separator);
out.append(v);
}
return out.toString();
}
public static String implode(Object[] values) {
return implode(values, ", ");
}
public static String implode(Object[] values, Object separator) {
return implode(Arrays.asList(values), separator);
}
public static final <T> String implode(Iterable<T> elements,
Object separator) {
String sepStr = separator.toString();
StringBuilder out = new StringBuilder();
boolean first = true;
for (Object s : elements) {
if (s == null)
continue;
if (first)
first = false;
else
out.append(sepStr);
out.append(s);
}
return out.toString();
}
public static final String implode(Iterable<?> strings) {
return implode(strings, ", ");
}
/*
* public static final String implode(Collection<?> strings, String
* separator) { int size = 0, n = strings.size(); for (Object s : strings)
* if (s != null) size += s.toString().length();
*
* StringBuffer out = new StringBuffer(size + separator.length() * (n == 0 ?
* 0 : n - 1)); boolean first = true; for (Object s : strings) { if (s ==
* null) continue;
*
* if (first) first = false; else out.append(separator); out.append(s); }
* return out.toString(); }
*/
public static final List<String> explode(String string, Pattern separator) {
int lastIndex = 0, len = string.length();
Matcher matcher = separator.matcher(string);
List<String> ret = new LinkedList<String>();
while (matcher.find()) {
String s = string.substring(lastIndex, matcher.start());
if (s.length() > 0)
ret.add(s);
lastIndex = matcher.end();
}
String s = string.substring(lastIndex, len);
if (s.length() > 0)
ret.add(s);
return ret;
}
public static String replace(String pattern, String replace, String s) {
return concatWithSeparator(explode(s, pattern).toArray(new String[0]),
replace);
}
public static final String concat(String[] a) {
StringBuffer b = new StringBuffer();
for (int i = 0; i < a.length; i++)
b.append(a[i]);
return b.toString();
}
public static final String concatln(String[] a) {
StringBuffer b = new StringBuffer();
int lenm = a.length - 1;
for (int i = 0; i < lenm; i++) {
b.append(a[i]);
b.append("\n");
}
if (lenm != -1)
b.append(a[lenm]);
return b.toString();
}
public static final String concatSpace(String[] a) {
StringBuffer b = new StringBuffer();
int lenm = a.length - 1;
for (int i = 0; i < lenm; i++) {
b.append(a[i]);
b.append(" ");
}
if (lenm != -1)
b.append(a[lenm]);
return b.toString();
}
public static final String concatWithSeparator(String[] a, String sep) {
StringBuffer b = new StringBuffer();
int lenm = a.length - 1;
for (int i = 0; i < lenm; i++) {
b.append(a[i]);
b.append(sep);
}
if (lenm != -1)
b.append(a[lenm]);
return b.toString();
}
public static final String javaEscape(String s) {
if (s == null)
return null;
char c;
int len = s.length();
StringBuffer b = new StringBuffer(len);
for (int i = 0; i < len; i++) {
c = s.charAt(i);
switch (c) {
case '\n':
b.append("\\n");
break;
case '\t':
b.append("\\t");
break;
case '\r':
b.append("\\r");
break;
case '"':
b.append("\"");
break;
case '\\':
b.append("\\\\");
break;
default:
if (c > 127 || Character.isISOControl(c)) {
b.append("\\u");
String nb = Integer.toString((int) c, 16);
int nblen = nb.length();
switch (nblen) {
case 1:
b.append(0);
case 2:
b.append(0);
case 3:
b.append(0);
case 4:
b.append(nb);
break;
default:
throw new IllegalArgumentException(
"Should not happen !");
}
} else
b.append(c);
}
}
return b.toString();
}
public static final String javaUnEscape(String s) {
char c;
int len = s.length();
StringBuffer b = new StringBuffer(len);
for (int i = 0; i < len; i++) {
c = s.charAt(i);
if (c == '\\') {
c = s.charAt(++i);
switch (c) {
case 'n':
b.append('\n');
break;
case 'r':
b.append('\r');
break;
case 't':
b.append('\t');
break;
case '\\':
b.append('\\');
break;
case '"':
b.append('"');
break;
case '\'':
b.append('\'');
break;
case 'u':
try {
String nb = s.substring(i + 1, i + 5);
int n = Integer.parseInt(nb, 16);
b.append((char) n);
i += 4;
} catch (Exception ex) {
throw new IllegalArgumentException(
"Illegal unicode escaping in string \"" + s
+ "\" at index " + i, ex);
}
break;
default:
throw new IllegalArgumentException(
"Unknown character: \"\\" + String.valueOf(c)
+ "...\"");
}
} else
b.append(c);
}
return b.toString();
}
public static String capitalize(String string) {
return string == null ? null : string.length() == 0 ? "" : Character
.toUpperCase(string.charAt(0)) + string.substring(1);
}
public static String capitalize(List<String> strings, String separator) {
List<String> cap = new ArrayList<String>(strings.size());
for (String s : strings)
cap.add(capitalize(s));
return implode(cap, separator);
}
public static String uncapitalize(String string) {
return string.length() == 0 ? "" : Character.toLowerCase(string
.charAt(0)) + string.substring(1);
}
public static final String LINE_SEPARATOR;
static {
LINE_SEPARATOR = System.getProperty("line.separator");
}
}
Related examples in the same category
1. | Fmt - format text (like Berkeley UNIX fmt) | | |
2. | Demonstrate some usage patterns and format-code examples of the Formatter | | |
3. | String.format(): right pad a string | | |
4. | String.format(): left pad a string | | |
5. | Format a String (JDK1.5) | | |
6. | Pass value array to String.format() | | |
7. | Format Calendar with String.format() | | |
8. | Abbreviates a String using ellipses in both sides. | | |
9. | Abbreviates a String using ellipses. | | |
10. | Abbreviate string | | |
11. | Word Wrap | | |
12. | Centers a String in a larger String of size size using the space character (' '). | | |
13. | Centers a String in a larger String of size size. Uses a supplied String as the value to pad the String with. | | |
14. | Centers a String in a larger String of size size. Uses a supplied character as the value to pad the String with. | | |
15. | Capitalize the first character of the given string | | |
16. | Capitalize the first letter but leave the rest as they are. | | |
17. | Capitalizes a String changing the first letter to title case as Character.toTitleCase(char). No other letters are changed. | | |
18. | Format strings into table | | |
19. | Center the contents of the string. | | |
20. | Truncate the supplied string to be no more than the specified length. | | |
21. | Replace, remove, format strings | | |
22. | Adds spaces in suitable locations of the input string | | |
23. | Blank string: empty or white space | | |
24. | Capital and uncapital strings | | |
25. | Capitalizes the first character of the given string | | |
26. | Utilities for String formatting, manipulation, and queries | | |
27. | Fast lower case conversion | | |
28. | Format a percentage for presentation to the user | | |
29. | Left justify the contents of the string, ensuring that the supplied string begins at the first character and that the resulting string is of the desired length. | | |
30. | Transforms words to singular, plural, humanized (human readable), underscore, camel case, or ordinal form | | |
31. | Escapes all necessary characters in the String so that it can be used in SQL | | |
32. | Escapes all necessary characters in the String so that it can be used in an XML doc | | |
33. | Adds zeros to the beginning of a value so that the total length matches the given precision, otherwise trims the right digits. | | |
34. | Right justify string, ensuring that the string ends at the last character | | |
35. | Makes the first letter caps and the rest lowercase. | | |
36. | Quote a string so that it can be used as an identifier or a string literal in SQL statements. | | |
37. | Remove the hyphens from the begining of str and return the new String. | | |
38. | Swaps the case of a String changing upper and title case to lower case, and lower case to upper case. | | |
39. | Uncapitalizes a String changing the first letter to title case as per Character.toLowerCase(char). No other letters are changed. | | |
40. | Capitlize each word in a string (journal titles, etc) | | |
41. | Uncapitalize String | | |
42. | Utility inserts a space before every caps in a string | | |
43. | convert String array To Comma Delimited | | |
44. | Constructs a method name from element's bean name for a given prefix | | |
45. | break Lines | | |
46. | Limit the string to a certain number of characters, adding "..." if it was truncated | | |
47. | Capicalizes the first letter of a string | | |
48. | Add delimiters to a string. | | |
49. | Get Truncated String | | |
50. | Convert to $(Dollars) string | | |
51. | Convert string to multiline | | |
52. | Deletes all whitespace from a String. | | |
53. | Trim string from left or right | | |
54. | To Upper Case First Char | | |
55. | Left trim and right trim | | |
56. | capitalize and uncapitalize | | |