gpt4 book ai didi

java - 如何迭代/导航字符集中的每个字符(例如,US-ASCII 或 IBM037,按正确的顺序)?

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:28 28 4
gpt4 key购买 nike

我想迭代字符集中的每个字符(主要是 US-ASCII 和 IBM037),然后以正确的字符集序列打印所有字母数字字符(或所有可打印字符)。是否可以不创建静态数组?

最佳答案

尝试以下操作以按照编码值的顺序打印所有有效字符。

public static void main(String... args) {
printCharactersFor("US-ASCII");
printCharactersFor("IBM037");
}

private static void printCharactersFor(String charsetName) {
System.out.println("Character set map for " + charsetName);
Charset charset = Charset.forName(charsetName);
SortedMap<BigInteger, String> charsInEncodedOrder = new TreeMap<BigInteger, String>();
for (int i = Character.MIN_VALUE; i < Character.MAX_VALUE; i++) {
String s = Character.toString((char) i);
byte[] encoded = s.getBytes(charset);
String decoded = new String(encoded, charset);
if (s.equals(decoded))
charsInEncodedOrder.put(new BigInteger(1, encoded), i + " " + s);
}
for (Map.Entry<BigInteger, String> entry : charsInEncodedOrder.entrySet()) {
System.out.println(entry.getKey().toString(16) + " " + entry.getValue());
}
}

它会生成与 http://www.fileformat.info/info/charset/IBM037/grid.htm 匹配的内容

关于java - 如何迭代/导航字符集中的每个字符(例如,US-ASCII 或 IBM037,按正确的顺序)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123750/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com