
com.ochafik.util.string.StringUtils Maven / Gradle / Ivy
/*
Copyright (c) 2009-2011 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 .
*/
package com.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("") ?
text : ""+
text.replace("&", "&").replace("<", "<").replace(">", ">").replace("\n","
")+
"";
}
static Pattern spacePattern;
public static List explode(String s) {
if (spacePattern == null) {
spacePattern = Pattern.compile("\\s+");
}
return explode(s, spacePattern);
}
public static List explode(String s, String sep) {
StringTokenizer st=new StringTokenizer(s,sep);
List v = new ArrayList();
for (;st.hasMoreTokens();) {
v.add(st.nextToken());
}
return v;
}
public static String trimUnderscores(String s) {
return trimChar(s, '_');
}
public static String trimChar(String s, char t) {
if (s == null)
return null;
int start = 0, n = s.length(), end = n;
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
if (c != t) {
start = i;
break;
}
}
for (int i = n - 1; i >= 0; i--) {
char c = s.charAt(i);
if (c != t) {
end = i + 1;
break;
}
}
return s.substring(start, end);
}
/*
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 String implode(Iterable 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 explode(String string, Pattern separator) {
int lastIndex = 0, len = string.length();
Matcher matcher = separator.matcher(string);
List ret = new LinkedList();
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;i127||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 strings, String separator) {
List cap = new ArrayList(strings.size());
for (String s : strings)
cap.add(capitalize(s));
return implode(cap, separator);
}
public static String underscoredToCamel(String string) {
String[] a = string.split("_");
for (int i = 0, n = a.length; i < n; i++) {
String s = a[i].trim();
a[i] = capitalize(a[i]);
}
return implode(a, "");
}
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");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy