private static boolean needsEscape(String value) { if (value.length() > 0 && value.charAt(0) == '\"') return false; final StringCharacterIterator iterator = new StringCharacterIterator(value); for (char ch = iterator.current(); ch != CharacterIterator.DONE; ch = iterator.next()) { if (!Character.isJavaIdentifierPart(ch) && ch != '-') { return true; } } return false; }
public static String escape(String input) { if (input == null) { return null; } StringBuilder result = new StringBuilder(); StringCharacterIterator iterator = new StringCharacterIterator(input); char character = iterator.current(); while (character != CharacterIterator.DONE) { if (character == '<') { result.append("<"); } else if (character == '>') { result.append(">"); } else if (character == '\"') { result.append("""); } else if (character == '\'') { result.append("'"); } else if (character == '&') { result.append("&"); } else { result.append(character); } character = iterator.next(); } return result.toString(); } }
public static List<String> parseDelimitedList(String s) { List<String> result = new ArrayList<String>(); if (StringUtils.isNotEmpty(s)) { StringCharacterIterator iterator = new StringCharacterIterator(s); char c = iterator.first(); StringBuilder strb = new StringBuilder(); boolean insideExpression = false; while (c != StringCharacterIterator.DONE) { if (c == '{' || c == '$') { insideExpression = true; } else if (c == '}') { insideExpression = false; } else if (c == ',' && !insideExpression) { result.add(strb.toString().trim()); strb.delete(0, strb.length()); } if (c != ',' || (insideExpression)) { strb.append(c); } c = iterator.next(); } if (strb.length() > 0) { result.add(strb.toString().trim()); } } return result; }
private static String escapeString(String value) { if (needsEscape(value)) { final StringBuilder result = new StringBuilder(); result.append('\"'); final StringCharacterIterator iterator = new StringCharacterIterator(value); for (char ch = iterator.current(); ch != CharacterIterator.DONE; ch = iterator.next()) { if (ch == '\"' || ch == '\'' || ch == '{' || ch == '}' || ch == '[' || ch == ']') { result.append('\\'); result.append(ch); } else if (ch < ' ' || ch > '~') { result.append("\\\\u"); String hex = "0000" + Integer.toHexString((int)ch); hex = hex.substring(hex.length() - 4); result.append(hex); } else { result.append(ch); } } result.append('\"'); value = result.toString(); } return value; }
public static String escape(String input) { if (input == null) { return null; } StringBuilder result = new StringBuilder(); StringCharacterIterator iterator = new StringCharacterIterator(input); char character = iterator.current(); while (character != CharacterIterator.DONE) { if (character == '<') { result.append("<"); } else if (character == '>') { result.append(">"); } else if (character == '\"') { result.append("""); } else if (character == '\'') { result.append("'"); } else if (character == '&') { result.append("&"); } else { result.append(character); } character = iterator.next(); } return result.toString(); } }
character = iterator.next();
character = iterator.next();
c = iterator.next();
public static String decode(String original) { if (original == null || original.length() == 0) return original; boolean changedString = false; int copyTo = 0; // it will always be less than the original char[] chars = new char[original.length()]; StringCharacterIterator iter = new StringCharacterIterator(original); for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) { if (c == '&') { changedString = true; copyTo = base64decode(chars, copyTo, iter); } else { chars[copyTo++] = c; } } // now create our string from the char array if (changedString) { return new String(chars, 0, copyTo); } else { return original; } }
public static String decode(String original) { if (original == null || original.length() == 0) return original; boolean changedString = false; int copyTo = 0; // it will always be less than the original char[] chars = new char[original.length()]; StringCharacterIterator iter = new StringCharacterIterator(original); for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) { if (c == '&') { changedString = true; copyTo = base64decode(chars, copyTo, iter); } else { chars[copyTo++] = c; } } // now create our string from the char array if (changedString) { return new String(chars, 0, copyTo); } else { return original; } }
c = iterator.next();
char nextChar() { final char theChar = mIter.current(); mIter.next(); return( theChar ); }
private String leftPad(String stringToPad, String padder, Integer size) { final StringBuilder sb = new StringBuilder(size.intValue()); final StringCharacterIterator sci = new StringCharacterIterator(padder); while (sb.length() < (size.intValue() - stringToPad.length())) { for (char ch = sci.first(); ch != CharacterIterator.DONE; ch = sci.next()) { if (sb.length() < (size.intValue() - stringToPad.length())) { sb.insert(sb.length(), String.valueOf(ch)); } } } return sb.append(stringToPad).toString(); }
import java.text.StringCharacterIterator; // ... public static boolean isPal(String s) { StringCharacterIterator it = new StringCharacterIterator(s); String reversed = "" for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) { reversed = c + reversed; } return reversed.equals(s); }
char nextChar() { final char theChar = mIter.current(); mIter.next(); return (theChar); } private static final char QUOTE_CHAR = '\"';
private char lookAhead() { char la = glob.next(); glob.previous(); return la; } }
private void gobbleSingleLineComment( StringCharacterIterator sci ) { for ( char c = sci.current(); c != EOF; c = sci.next() ) { switch( c ) { case NEWLINE: return; } } } // this is called when a token starts with SLASH-STAR
private void gobbleWhiteSpace( StringCharacterIterator sci ) { for ( char c = sci.current(); c != EOF; c = sci.next() ) { switch( c ) { case SPACE : case FORMFEED: case NEWLINE : case RETURN : case TAB : break; default : return; } } } // this is called when a token starts with a delimiter character
private static boolean needsEscape(String value) { if (value.length() > 0 && value.charAt(0) == '\"') return false; final StringCharacterIterator iterator = new StringCharacterIterator(value); for (char ch = iterator.current(); ch != CharacterIterator.DONE; ch = iterator.next()) { if (!Character.isJavaIdentifierPart(ch) && ch != '-') { return true; } } return false; }
private int countChar(char searchChar, String inTargetString) { StringCharacterIterator iter = new StringCharacterIterator(inTargetString); int i = 0; if (iter.first() == searchChar) i++; while (iter.getIndex() < iter.getEndIndex()) { if (iter.next() == searchChar) { i++; } } return i; }