2016-05-02 101 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如果該字符沒有數字值。