Processing.js 处理:如何将char数据类型转换为其utf-8 int表示?

Processing.js 处理:如何将char数据类型转换为其utf-8 int表示?,processing.js,processing,Processing.js,Processing,在处理过程中,如何将char数据类型转换为其utf-8 int表示形式 因此,如果我有一个数组['a'、'b'、'c'],我想获得另一个数组[61、62、63]。在我的回答之后,我找到了一种更简单、更直接的方法,可以转换为您想要的数字类型。你想要的“a”是61而不是97等等。这并不难看出61是十进制97的十六进制表示形式。因此,您所需要做的就是将您的字符输入到一个特定的方法中,如下所示: Integer.toHexString((int)'a'); 如果您有这样一个字符数组: char[] c

在处理过程中,如何将char数据类型转换为其utf-8 int表示形式


因此,如果我有一个数组['a'、'b'、'c'],我想获得另一个数组[61、62、63]。

在我的回答之后,我找到了一种更简单、更直接的方法,可以转换为您想要的数字类型。你想要的“a”是61而不是97等等。这并不难看出61是十进制97的十六进制表示形式。因此,您所需要做的就是将您的字符输入到一个特定的方法中,如下所示:

Integer.toHexString((int)'a');
如果您有这样一个字符数组:

char[] c = {'a', 'b', 'c', 'd'};
然后,您可以使用上述方法:

Integer.toHexString((int)c[0]);
等等等等

编辑

根据下面评论中v.k.的示例,您可以在处理过程中执行以下操作:

char c = 'a';
以上内容将为您提供字符串形式的字符十六进制表示

// to save the hex representation as an int you need to parse it since hex() returns a String
int hexNum = PApplet.parseInt(hex(c));

// OR

int hexNum = int(c);
为了让OP和下面的评论者受益。即使你在答案中使用了我之前的建议,你的“a”也会得到97,因为97是十六进制61的十进制表示。看到UTF-8与前127个ASCII条目的值匹配,我不明白为什么人们会期望有任何不同。至于UnsupportedEncodingException,一个简单的修复方法是将语句包装在try/catch块中。但是,这是没有必要的,因为上面的内容以更简单的方式直接回答了这个问题。

你说的“utf-8 int”是什么意思?UTF8是一种多字节编码方案,用于表示为Unicode数字的字母(技术上称为字形)。在您的示例中,您使用ASCII集合中的普通字母,但该集合与真正的unicode/utf8问题关系不大

对于简单的字母,您可以直接进行int-cast:

print((int)'a') -> 97
print((int)'A') -> 65

但是,对于16位字符范围之外的字符,您不能这样做<代码>打印((int)'二')有效,(以十六进制表示20108或4E8C),但
print((int)”此代码在处理过程中给了我不受支持的编码异常…你知道为什么吗?此其他版本有效,但仍然给我97、98、99、100。而不是61、62、63、64…导入java.nio.charset.*;charset utf=charset.forName(“utf-8”);String s=“abcd”;byte[]b=s.getBytes(utf);println(b);以一种处理方式,可以说:char c='a';println(hex(int(c));@v.k.谢谢,我会更新我的答案。这是从Java处理的缺点。很难放弃Java。好吧,它返回一个字符串,所以你可以这样做:char c='a';println(int(hex(c));然后得到一个int:)但无论如何,我认为这是处理的好处之一,你可以在需要的时候加入一些java。为什么不呢?啊,而且你编辑的代码缺少第二行。我看到了,但我只是指出你不需要使用Integer.parseInt()。你可以使用处理的int():)请参阅我最近对我的答案的编辑。请更新您的帖子,以便您的问题与您正在寻找的答案相匹配@nickecarlo指出,您实际上想要十六进制字符串,请相应地更新您的问题,以便将来可能会找到此问题和答案的人不会因为答案实际上是与您在此处列出的问题不同的答案而感到困惑。