1 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
3 package edu.berkeley.sbp.util;
5 /** miscellaneous string utilities */
6 public class StringUtil {
8 public static String pad(int i,String s) {
9 return s.length() >= i ? s : pad(i-1,s)+" ";
12 public static String join(String[] s, String sep) {
13 StringBuffer ret = new StringBuffer();
14 for(int i=0; i<s.length; i++) {
15 if (i>0) ret.append(sep);
18 return ret.toString();
20 public static String toJavaString(String s) {
21 StringBuffer sb = new StringBuffer();
22 for(int i=0; i<s.length(); i++) {
25 case '\\': sb.append("\\\\"); break;
26 case '\"': sb.append("\\\""); break;
27 case '\'': sb.append("\\\'"); break;
28 case '\n': sb.append("\\n"); break;
29 case '\r': sb.append("\\r"); break;
30 case '\t': sb.append("\\t"); break;
31 default: sb.append(c); break;
37 public static String unescapify(String s) {
38 StringBuffer sb = new StringBuffer();
39 for(int i=0; i<s.length(); i++) {
44 case 'r': c = '\r'; break;
45 case 'n': c = '\n'; break;
46 case 't': c = '\t'; break;
55 case ' ': sb.append("\\ "); break;
56 case '{': sb.append("\\{"); break;
57 case '}': sb.append("\\}"); break;
58 case ':': sb.append("\\:"); break;
60 public static String escapify(String s) { return escapify(s, "\\\n\r\t"); }
61 public static String escapify(String s, String illegal) {
62 if (s==null) return null;
63 StringBuffer sb = new StringBuffer();
64 for(int i=0; i<s.length(); i++) {
66 if (illegal.indexOf(c) != -1)
68 case '\n': sb.append("\\n"); continue;
69 case '\r': sb.append("\\r"); continue;
70 case '\t': sb.append("\\t"); continue;
71 default: sb.append('\\'); break;
73 else if (c < 32 || c >= 127) {
74 sb.append("\\x"+((int)c));
82 public static String indent(String s, int indent) {
83 if (s.indexOf('\n')==-1) return s;
84 StringBuffer ret = new StringBuffer();
85 for(int i=0; i<s.length(); i++) {
89 for(int j=0; j<indent; j++)
92 return ret.toString();