我正在编写一个程序来打印ascii表的值,并且遇到了字符0-32只会在我的图表中留下空白的问题,或者最糟糕的是,它会打印出来退格键,新行,制表符或类似字符,并且会破坏我的图表。
这是在循环中打印我的表的每个段的行,其中i
是我要打印的字符的十进制表示。
System.out.print(i+"\t"+((char) i)+"\t");
是否有更简单的方法来打印每个控制字符而不重新格式化我的表,而不是一个处理0-32之间所有字符的开关结构?
答案 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)
Apache commons有StringEscapeUtils.escapeJava(String)