首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中将字符转换为整数

在Java中将字符转换为整数
EN

Stack Overflow用户
提问于 2013-10-16 02:05:39
回答 6查看 484.3K关注 0票数 65

有人能给我解释一下这是怎么回事吗:

代码语言:javascript
复制
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));

这将打印i: 43 ch:-1。这是否意味着我必须依靠原语转换来将char转换为int?那么,如何将Character转换为Integer呢?

编辑:是的,我知道如果Character.getNumericValue不是一个数字值,它会返回-1,这对我来说很有意义。问题是:为什么进行基元转换会返回43

Edit2: 43+的ASCII码,但我希望演员阵容不会成功,就像getNumericValue没有成功一样。否则,这意味着有两种语义等价的方法来执行相同的操作,但结果不同?

EN

回答 6

Stack Overflow用户

发布于 2013-10-16 02:08:18

代码语言:javascript
复制
Character.getNumericValue(c)

java.lang.Character.getNumericValue(char ch)返回指定的int字符表示的Unicode值。例如,字符'\u216C' (罗马数字50 )将返回一个值为50的int。

大写('\u0041' through '\u005A')、小写('\u0061' through '\u007A')和全角变体('\uFF21' through '\uFF3A' and '\uFF41' through '\uFF5A')形式中的字母A-Z的数值介于10到35之间。这与Unicode规范无关,Unicode规范不会将数值分配给这些字符值。

此方法返回字符的数字值,作为非负的int值;

如果字符的数值不是非负整数;

-1,如果字符没有数值。

here就是这个链接。

票数 92
EN

Stack Overflow用户

发布于 2013-10-16 02:07:11

正如文档中明确指出的那样,Character.getNumericValue()以数字的形式返回字符的值。

如果字符不是数字,则返回-1

如果您想要获取已装箱的Character对象的数字Unicode代码点,则需要首先对其进行拆箱:

代码语言:javascript
复制
int value = (int)c.charValue();
票数 40
EN

Stack Overflow用户

发布于 2015-08-26 17:09:03

请尝试以下任一选项。这些应该是有效的:

代码语言:javascript
复制
int a = Character.getNumericValue('3');
int a = Integer.parseInt(String.valueOf('3');
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19388037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档