代码之家  ›  专栏  ›  技术社区  ›  mike rodent

如何从控制台输入字符串中获取控制字符

  •  0
  • mike rodent  · 技术社区  · 7 年前

    String 从键盘输入返回,使用

    BufferedReader br = new BufferedReader( new InputStreamReader(System.in, 'UTF-8' ));
    String response = br.readLine();
    

    遍历 char 字符串 我发现向下箭头的意思是( int 的值 烧焦 烧焦 S第一个值对应于 Escape . 因此,这似乎不是一个确定一个单一的问题 Character

    我也不清楚为什么这个控制字符不能作为一个UTF8字符打印出来,而是作为UTF8字符的3个组成部分打印出来:这是否意味着当你遍历一个 你实际上是一个字节一个字节地得到它的内容?

    我只是想知道在给定的UTF8字符串中是否有任何文档化的或聪明的方法(查找和识别控制字符)。也许是Apache Commons。或者在Groovy中(我实际上使用的是Groovy,而不是Java)?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Stephen C    7 年前

    可以使用 Character::isISOControl javadoc ).

    但是,如注释中所述,上箭头和下箭头是击键而不是字符。它们在输入流中实际生成的内容依赖于平台。例如,如果您使用的是符合ANSI标准的终端或终端仿真器,则向上箭头将映射到序列 ESC [ A ESC 只是。

    序列