List of usage examples for java.lang StringBuffer charAt
@Override public synchronized char charAt(int index)
From source file:TextVerifyInputFormatDate.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout()); final Text text = new Text(shell, SWT.BORDER); text.setText("YYYY/MM/DD"); ;/*from w w w . j ava 2s . c om*/ final Calendar calendar = Calendar.getInstance(); text.addListener(SWT.Verify, new Listener() { boolean ignore; public void handleEvent(Event e) { if (ignore) return; e.doit = false; StringBuffer buffer = new StringBuffer(e.text); char[] chars = new char[buffer.length()]; buffer.getChars(0, chars.length, chars, 0); if (e.character == '\b') { for (int i = e.start; i < e.end; i++) { switch (i) { case 0: /* [Y]YYY */ case 1: /* Y[Y]YY */ case 2: /* YY[Y]Y */ case 3: /* YYY[Y] */ { buffer.append('Y'); break; } case 5: /* [M]M */ case 6: /* M[M] */ { buffer.append('M'); break; } case 8: /* [D]D */ case 9: /* D[D] */ { buffer.append('D'); break; } case 4: /* YYYY[/]MM */ case 7: /* MM[/]DD */ { buffer.append('/'); break; } default: return; } } text.setSelection(e.start, e.start + buffer.length()); ignore = true; text.insert(buffer.toString()); ignore = false; text.setSelection(e.start, e.start); return; } int start = e.start; if (start > 9) return; int index = 0; for (int i = 0; i < chars.length; i++) { if (start + index == 4 || start + index == 7) { if (chars[i] == '/') { index++; continue; } buffer.insert(index++, '/'); } if (chars[i] < '0' || '9' < chars[i]) return; if (start + index == 5 && '1' < chars[i]) return; /* [M]M */ if (start + index == 8 && '3' < chars[i]) return; /* [D]D */ index++; } String newText = buffer.toString(); int length = newText.length(); StringBuffer date = new StringBuffer(text.getText()); date.replace(e.start, e.start + length, newText); calendar.set(Calendar.YEAR, 1901); calendar.set(Calendar.MONTH, Calendar.JANUARY); calendar.set(Calendar.DATE, 1); String yyyy = date.substring(0, 4); if (yyyy.indexOf('Y') == -1) { int year = Integer.parseInt(yyyy); calendar.set(Calendar.YEAR, year); } String mm = date.substring(5, 7); if (mm.indexOf('M') == -1) { int month = Integer.parseInt(mm) - 1; int maxMonth = calendar.getActualMaximum(Calendar.MONTH); if (0 > month || month > maxMonth) return; calendar.set(Calendar.MONTH, month); } String dd = date.substring(8, 10); if (dd.indexOf('D') == -1) { int day = Integer.parseInt(dd); int maxDay = calendar.getActualMaximum(Calendar.DATE); if (1 > day || day > maxDay) return; calendar.set(Calendar.DATE, day); } else { if (calendar.get(Calendar.MONTH) == Calendar.FEBRUARY) { char firstChar = date.charAt(8); if (firstChar != 'D' && '2' < firstChar) return; } } text.setSelection(e.start, e.start + length); ignore = true; text.insert(newText); ignore = false; } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:Main.java
private static StringBuffer swap(StringBuffer s, int a, int b) { char t = s.charAt(a); s.setCharAt(a, s.charAt(b));//from ww w . j a v a 2 s. c o m s.setCharAt(b, t); return s; }
From source file:Main.java
public static String trimTail(StringBuffer sb, char tail) { if (sb.length() > 0 && sb.charAt(sb.length() - 1) == tail) sb.deleteCharAt(sb.length() - 1); return sb.toString(); }
From source file:Main.java
public static String filterInvalid(String xml) { StringBuffer sb = new StringBuffer(xml); for (int i = 0; i < sb.length(); i++) { int c = sb.charAt(i); if (c < 0x20 && c != 0x09/*\t*/ && c != 0x0A/*\n*/ && c != 0x0D/*\r*/) { sb.delete(i, i + 1);// w ww . j av a 2 s . c o m } } return sb.toString(); }
From source file:Main.java
/** * Trims leading and trailing spaces from a string buffer * @param buffer the buffer to be edited *//* www.j a v a 2s . co m*/ public static void trim(StringBuffer buffer) { int i = 0; while (i < buffer.length() && isSpace(buffer.charAt(i))) i++; buffer.delete(0, i); int j = buffer.length() - 1; while (j >= 0 && isSpace(buffer.charAt(j))) j--; buffer.setLength(j + 1); }
From source file:Main.java
/** * Replaces Windows 1252 characters with their Unicode equivalents. * @param buffer the buffer to be edited *//* w w w .j av a 2 s. c o m*/ public static void fixWin1252(StringBuffer buffer) { for (int i = 0; i < buffer.length(); i++) { char ch = buffer.charAt(i); if ('\u0080' <= ch && ch <= '\u009F') buffer.setCharAt(i, win1252_80_9f[ch - '\u0080']); } }
From source file:Main.java
private static String getNumericPrefix(String string) { StringBuffer numeric = new StringBuffer(); if (string != null) { string = string.trim();//from w w w.ja v a2s. co m if (string.length() > 0) { StringBuffer buffer = new StringBuffer(string); char first = buffer.charAt(0); if (Character.isDigit(first)) { numeric.append(first); for (int i = 1; i < buffer.length(); i++) { Character next = buffer.charAt(i); if (Character.isDigit(next)) { numeric.append(next); // skip commas within numbers } else if (next.equals(',')) { continue; } else { break; } } } } } return numeric.length() == 0 ? null : numeric.toString(); }
From source file:Main.java
/** * Convert umlaute to entities//from w w w . j a va 2 s.co m */ public static String encode(String value) { StringBuffer buffer = new StringBuffer(value); for (int i = 0; i < buffer.length(); i++) { if (buffer.charAt(i) > 127) { buffer.replace(i, i + 1, "__" + ((int) buffer.charAt(i)) + ";"); } } return buffer.toString(); }
From source file:Main.java
private static String join(int length) { StringBuffer sb = new StringBuffer(1024); for (int i = 0; i < length; i++) { sb.append("?,"); }//from w ww . jav a 2 s . com if (sb.charAt(sb.length() - 1) == ',') { sb.deleteCharAt(sb.length() - 1); } return sb.toString(); }
From source file:Main.java
/** * Replaces HTML entities in a string buffer * @param buffer the string buffer/*from w w w. j av a 2 s.com*/ */ public static void replaceEntities(StringBuffer buffer) { int i = 0; while (i < buffer.length()) { if (buffer.charAt(i) == '&') { int j = i + 1; while (j < buffer.length() && buffer.charAt(j) != ';') j++; if (j < buffer.length()) { char[] chars = new char[j - i - 1]; buffer.getChars(i + 1, j, chars, 0); Character repl = (Character) replacements.get(new String(chars)); if (repl != null) { buffer.delete(i, j); buffer.setCharAt(i, repl.charValue()); } else i = j; } else i = j; } i++; } }