import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone {
StringBuilder result = new StringBuilder("\"");
for (int i = 0; i < str.length(); i++) {
final char ch = str.charAt(i);
if (ch
>= 128) result.
append(String.
format("\\u%04x",
(int) ch
)); else if (ch == '"') result.append("\\\"");
else if (ch >= 32) result.append(ch);
else switch (ch) {
case '\b': result.append("\\b"); break;
case '\f': result.append("\\f"); break;
case '\n': result.append("\\n"); break;
case '\r': result.append("\\r"); break;
case '\t': result.append("\\t"); break;
default: final int iNext = i + 1;
if (iNext == str.length())
result.
append(String.
format("\\%o",
(int) ch
)); else {
final char nextCh = str.charAt(iNext);
result.
append(String.
format((nextCh
>= '0' && nextCh
<= '9') ? "\\%03o" : "\\%o",
(int) ch
)); }
}
}
result.append("\"");
return result.toString();
}
public static String getRemainingScannerContents
(final Scanner scanner
) { scanner.useDelimiter("\\A");
return scanner.hasNext() ? scanner.next() : "";
}
Scanner scanner = new Scanner("test\ntest\n12345");
System.
out.
println(inspect
(getRemainingScannerContents
(scanner
))); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUgewogIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGluc3BlY3QoZmluYWwgU3RyaW5nIHN0cikgewogICAgU3RyaW5nQnVpbGRlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVpbGRlcigiXCIiKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyLmxlbmd0aCgpOyBpKyspIHsKICAgICAgZmluYWwgY2hhciBjaCA9IHN0ci5jaGFyQXQoaSk7CiAgICAgIGlmICAgICAgKGNoID49IDEyOCkgcmVzdWx0LmFwcGVuZChTdHJpbmcuZm9ybWF0KCJcXHUlMDR4IiwgKGludCkgY2gpKTsKICAgICAgZWxzZSBpZiAoY2ggPT0gJyInKSByZXN1bHQuYXBwZW5kKCJcXFwiIik7CiAgICAgIGVsc2UgaWYgKGNoID49ICAzMikgcmVzdWx0LmFwcGVuZChjaCk7CiAgICAgIGVsc2Ugc3dpdGNoIChjaCkgewogICAgICAgIGNhc2UgJ1xiJzogICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcYiIpOyBicmVhazsKICAgICAgICBjYXNlICdcZic6ICAgICAgICByZXN1bHQuYXBwZW5kKCJcXGYiKTsgYnJlYWs7CiAgICAgICAgY2FzZSAnXG4nOiAgICAgICAgcmVzdWx0LmFwcGVuZCgiXFxuIik7IGJyZWFrOwogICAgICAgIGNhc2UgJ1xyJzogICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcciIpOyBicmVhazsKICAgICAgICBjYXNlICdcdCc6ICAgICAgICByZXN1bHQuYXBwZW5kKCJcXHQiKTsgYnJlYWs7CiAgICAgICAgZGVmYXVsdDogICAgICAgIGZpbmFsIGludCBpTmV4dCA9IGkgKyAxOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaU5leHQgPT0gc3RyLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nLmZvcm1hdCgiXFwlbyIsIChpbnQpIGNoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGNoYXIgbmV4dENoID0gc3RyLmNoYXJBdChpTmV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmcuZm9ybWF0KChuZXh0Q2ggPj0gJzAnICYmIG5leHRDaCA8PSAnOScpID8gIlxcJTAzbyIgOiAiXFwlbyIsIChpbnQpIGNoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmVzdWx0LmFwcGVuZCgiXCIiKTsKICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFJlbWFpbmluZ1NjYW5uZXJDb250ZW50cyhmaW5hbCBTY2FubmVyIHNjYW5uZXIpIHsKICAgIHNjYW5uZXIudXNlRGVsaW1pdGVyKCJcXEEiKTsKICAgIHJldHVybiBzY2FubmVyLmhhc05leHQoKSA/IHNjYW5uZXIubmV4dCgpIDogIiI7CiAgfQoKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoZmluYWwgU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewogICAgU2Nhbm5lciBzY2FubmVyID0gbmV3IFNjYW5uZXIoInRlc3RcbnRlc3RcbjEyMzQ1Iik7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5zcGVjdChnZXRSZW1haW5pbmdTY2FubmVyQ29udGVudHMoc2Nhbm5lcikpKTsKICB9Cn0=