2016-05-02 100 views
1

我是新来的java,试图写我的第一个应用程序 - 计算器 - 我自己。 尝试四处搜寻,但找不到任何类似的东西。它可以通过ASCII或字节来完成吗? 为了简化什么,我想知道我给下面的例子:如何将char转换为实际值?

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

我想字符+莫名其妙地被转化为实际+签收INT计算工作。可能吗? 提前谢谢!

+0

这是可能的,但不是这样。你需要'if's或者switch-case – Hackerdarshi

+1

不是那样的。你需要在运行时将你的表达式解析为一个'String'(或至少一个'char'类型和两个'int's)。 –

+0

可能的重复:http://stackoverflow.com/questions/19388037/converting-characters-to-integers-in-java – Ricardo

回答

3

这是不可能的。您将需要在运行时检查变量值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` 
+0

非常感谢!在这种情况下使用if语句切换到使用有什么区别吗? –

+0

@DeividasStrioga不存在功能差异,但switch语句可能比if语句具有更好的性能。 – SamTebbs33

-1
Character.getNumericValue(c) 

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

字母AZ以其大写字母('\ u0041'至'\ u005A'),小写字母(' ('\ u0071')和全角变量('\ uFF21'到'\ uFF3A'和'\ uFF41'到'\ uFF5A')格式的数值从10到35.这与Unicode规范,它不会为这些char值分配数值。

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

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

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