java在hadoop中的文本迭代

o4tp2gmn  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(301)

我正在尝试遍历一个 Text 并打印其内容。这是我尝试的代码:

Text text = new Text();
    text.set("Hadoop");
    ByteBuffer buf = ByteBuffer.wrap(text.getBytes(),0,text.getLength());
    int cp = 0;
    while(buf.hasRemaining() && (cp = Text.bytesToCodePoint(buf)) != 1)
        System.out.println(Integer.toHexString(cp));

这是给我打印代码点。如何打印这些字符?
编辑
对于输入“hadoop”,将 int cpchar 在你的while循环中工作。但是,当文本是 \u0041\u00DF\u6771\uD801\uDC00 然后用同样的代码我得到一个 couple of ? 打印在控制台上。有什么具体的原因吗?请建议。

4zcjmb1e

4zcjmb1e1#

我想对你来说最简单的方法就是 intschars . 像这样:

int[] chars = { 0x41, 0xdf, 0x6671, 0x10400 };
for(int c : chars) {
    String out = String.format("%d -> %s", c, (char) c);
    System.out.println(out);
}

我的输出是:

65 -> A
223 -> ß
26225 -> 晱
66560 -> Ѐ

相关问题