【问题标题】:Java ASCII Characters Inputting As A StringJava ASCII 字符作为字符串输入
【发布时间】:2014-04-23 09:15:01
【问题描述】:

我对以下 ASCII 字符 11 个垂直制表符、28 个文件分隔符和 13 个回车符感兴趣。通过 Java,Character.isWhitespace() 会告诉我这些字符是否属于这些类型之一。

我想要做的是将输入数据作为字符串发送。例如字符 13 是 '\r' 所以这可以输入到字符串中:

String input = new String("'\'rThis is");

由此我可以识别 input.toCharArray() 中的字符 0、1 和 2 是 ASCII 字符 13。如何在字符串中表示垂直制表符和文件分隔符。

我做了很多研究,但谷歌没有给出答案。水平制表符是制表符,例如“这是”,但垂直制表符是什么?

【问题讨论】:

  • “谷歌没有给出答案”..可能这个问题没有很好地构建。 :)

标签: java ascii


【解决方案1】:

原则上,您可以将它们输入为 Unicode 代码点,如下所示:

  • 垂直标签:\u000b
  • 文件分隔符:\001c

我现在手头没有我的 Java 编译器,所以我无法测试它是否真的有效。

【讨论】:

  • 您的答案似乎适用于垂直标签。你确定文件分隔符的 unicode 值是正确的吗?
【解决方案2】:

您始终可以通过 (char) [asciiValue] 在这种情况下通过 (char) 11 获取 Java 中任何 ASCII 字符的 char 值来获取垂直制表符。

我相信使用 File.seperator 可以使用文件分隔符。

【讨论】:

    【解决方案3】:

    您可以从指定每个字符的字节数组构造一个字符串。

    String input = new String(new byte[] {11, 28, 13 });
    

    根据以下测试,看来它们确实都是空白。

    import java.util.*;
    public class Foo {
        public static void main(String[] args) {            
            String input = new String(new byte[] {11, 28, 13 });
            System.out.println(Character.isWhitespace(input.charAt(0)));
            System.out.println(Character.isWhitespace(input.charAt(1)));
            System.out.println(Character.isWhitespace(input.charAt(2)));
        }
    }
    

    输出:

    true
    true
    true
    

    【讨论】:

      猜你喜欢
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 2015-10-08
      相关资源
      最近更新 更多