【问题标题】:How to convert char to its actual value?如何将 char 转换为其实际值?
【发布时间】:2016-08-27 05:27:12
【问题描述】:

我是 Java 新手,正在尝试自己编写我的第一个应用程序 - 计算器。 尝试四处寻找,但找不到类似的东西。可以通过 ASCII 或字节来完成吗? 为了简化我想知道的内容,我举了以下示例:

char ch = '+';
int i = 1 ch 2;
int = 3;

我想以某种方式将 char + 转换为实际的 + 符号,以便 int 计算工作。可能吗? 提前谢谢!

【问题讨论】:

标签: java


【解决方案1】:

这是不可能的。您需要在运行时检查 char 变量的值。

int a = 1, b = 2, result = 0;

switch(ch) {
    case '+':
        result = a + b;
        break;
    case '-':
        result = a - b;
        break;
    // et.c
}

// The result of the calculation is now in `result`

【讨论】:

  • 非常感谢!在这种情况下使用 switch 和使用 if 语句有什么区别吗?
  • @DeividasStrioga 不会有功能上的差异,但 switch 语句可能比 if 语句有更好的性能。
【解决方案2】:
Character.getNumericValue(c)

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

大写字母 AZ('\u0041' 到 '\u005A')、小写字母('\u0061' 到 '\u007A')和全角变体('\uFF21' 到 '\uFF3A' 和 ' \uFF41' 到 '\uFF5A') 形式的数值范围为 10 到 35。这与 Unicode 规范无关,Unicode 规范不会为这些 char 值分配数值。

该方法返回字符的数值,作为非负整数值;

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

-1 如果字符没有数值。

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多