Java - 如何逃避打印控制字符?

时间:2016-03-31 16:21:30

标签: java casting character ascii

我正在编写一个程序来打印ascii表的值,并且遇到了字符0-32只会在我的图表中留下空白的问题,或者最糟糕的是,它会打印出来退格键,新行,制表符或类似字符,并且会破坏我的图表。

这是在循环中打印我的表的每个段的行,其中i是我要打印的字符的十进制表示。

System.out.print(i+"\t"+((char) i)+"\t");

是否有更简单的方法来打印每个控制字符而不重新格式化我的表,而不是一个处理0-32之间所有字符的开关结构?

3 个答案:

答案 0 :(得分:1)

您是否尝试过Java lib“org.apache.commons.lang”中的 StringEscapeUtils.escapeJava

System.out.print(StringEscapeUtils.escapeJava(string_containing_ctrl_chars));

答案 1 :(得分:0)

你可以有一个if语句

if(i >= 0 && i <= 32) {
  System.out.print(i+"\t Na \t"); //or change Na to whatever you want
} else {
  System.out.print(i+"\t"+((char) i)+"\t");
}

答案 2 :(得分:0)