java 程序从linux 上接收不可见字符

近期在写一个简单的小java程序,希望在运行java 程序时,从shell 中接收参数,并且参数的内容为不可见字符。

开始时还觉得可以使用""之类的转义符来写,后来发现java程序从shell中接收参数时,根本就没有转义符这一说,直接接收到的就是string。

例如执行以下命令

java -jar test.jar

如果java程序是将输入的信息打印屏幕,那么打印的内容将是" ",而不是"换行"。

从网上找了很多资料,都没有发现能够解决shell 传入不可见字符参数的解决方法,故用逆向思维想了:"是否可以用ascii 输入代替不可见字符,然后在java中转义ascii的十进制内容"。

沿着这个思路在网上找资料,皇天不负有心人,java中对ascii 十进制内容转义还是很简单的,下面贴一下代码

public class Test {
    public static void main (String[] args) {
        int t = Integer.parseInt(args[0]);
        System.out.println("**" + (char)t  + "**");
    }    
}

如果执行  java -jar test.jar 65 , 输出内容将是"A"

如果执行 java -jar test.jar 10 ,输出内容将是" "(换行)

  

原文地址:https://www.cnblogs.com/chenfool/p/6650808.html