1 package edu.berkeley.sbp.util;
3 /** miscellaneous string utilities */
4 public class StringUtil {
6 public static String pad(int i,String s) {
7 return s.length() >= i ? s : pad(i-1,s)+" ";
10 public static String join(String[] s, String sep) {
11 StringBuffer ret = new StringBuffer();
12 for(int i=0; i<s.length; i++) {
13 if (i>0) ret.append(sep);
16 return ret.toString();
18 public static String toJavaString(String s) {
19 StringBuffer sb = new StringBuffer();
20 for(int i=0; i<s.length(); i++) {
23 case '\\': sb.append("\\\\"); break;
24 case '\"': sb.append("\\\""); break;
25 case '\'': sb.append("\\\'"); break;
26 case '\n': sb.append("\\n"); break;
27 case '\r': sb.append("\\r"); break;
28 default: sb.append(c); break;
34 public static String unescapify(String s) {
35 StringBuffer sb = new StringBuffer();
36 for(int i=0; i<s.length(); i++) {
41 case 'r': c = '\r'; break;
42 case 'n': c = '\n'; break;
51 case ' ': sb.append("\\ "); break;
52 case '{': sb.append("\\{"); break;
53 case '}': sb.append("\\}"); break;
54 case ':': sb.append("\\:"); break;
56 public static String escapify(String s) { return escapify(s, "\\\n\r"); }
57 public static String escapify(String s, String illegal) {
58 if (s==null) return null;
59 StringBuffer sb = new StringBuffer();
60 for(int i=0; i<s.length(); i++) {
62 if (illegal.indexOf(c) != -1)
64 case '\n': sb.append("\\n"); continue;
65 case '\r': sb.append("\\r"); continue;
66 default: sb.append('\\'); break;
73 public static String indent(String s, int indent) {
74 if (s.indexOf('\n')==-1) return s;
75 StringBuffer ret = new StringBuffer();
76 for(int i=0; i<s.length(); i++) {
80 for(int j=0; j<indent; j++)
83 return ret.toString();