package annotations.util;
/*>>>
import org.checkerframework.checker.nullness.qual.*;
*/
/**
* {@link Strings} provides useful static methods related to strings.
*/
public abstract class Strings {
private Strings() {}
/**
* Returns the given string, escaped and quoted according to Java
* conventions. Currently, only newlines, backslashes, tabs, and
* single and double quotes are escaped. Perhaps nonprinting
* characters should also be escaped somehow.
*/
public static String escape(String in) {
StringBuilder out = new StringBuilder("\"");
for (int pos = 0; pos < in.length(); pos++) {
switch (in.charAt(pos)) {
case '\n':
out.append("\\n");
break;
case '\t':
out.append("\\t");
break;
case '\\':
out.append("\\\\");
break;
case '\'':
out.append("\\\'");
break;
case '\"':
out.append("\\\"");
break;
default:
out.append(in.charAt(pos));
}
}
out.append('\"');
return out.toString();
}
}