2017-09-15 28 views
0

Java SEライブラリや、次の実装がすでに提供されている一般的なもの(apache-commonsなど)特殊文字を含む文字列をエスケープされた別の文字列に変換するにはどうすればいいですか?

言って、私は、タブなどの非印刷可能と特殊文字の文字列を持っている...私は、文字列の実際の組成読者に伝え、このような文字列の表現を取得できるようにしたいと思います:

例えばだから、

String input = "hello\tworld!!!"; 
System.out.println(input); \\ output looks like: hello world!!! 
String output = printable(input); 
System.out.println(output); \\ output looks like: hello\tworld!!! 
          \\ or 
          \\ output looks like: hello<TAB>world!!! 
          \\ or 
          \\ output looks like: hello\011world!!! 

正確な形式は重要ではありませんが、それは文字列の内容をプログラマが理解できる方法で明瞭に表示するために十分なはずです。

自分のソリューションをコーディングすることはできますが、すでに存在するものがあるかどうかは疑問です。

+1

実際は重複しているようです。しかし、私が驚いているのは、提案されたソリューションのうちの1つだけが、エスケープが必要ない場合に渡された同じ文字列を実際に返していることです。そして、その解決策は問題を正しく解決しませんでした。 –

答えて

1

org.apache.commons.lang3.StringEscapeUtilsをご覧ください。これはApache commons-lang3で利用可能です。

String input = "hello\tworld!!!"; 
System.out.println(input); //output looks like: hello world!!! 
String output = StringEscapeUtils.escapeJava(input); 
System.out.println(output);//output looks like: hello\tworld!!! 
関連する問題