2016-05-02 6 views
1

Я новичок в java, пытаясь написать свое первое приложение - калькулятор - сам по себе. Пробовал искать, но не мог найти ничего подобного. Это можно сделать через ASCII или байты? Чтобы упростить то, что я хочу знать, я привести следующий пример:Как преобразовать символ в его фактическое значение?

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

Я хочу, чтобы какой-то образом преобразовать обугленный + в фактическом + знак для расчета Int на работу. Является ли это возможным? Спасибо заранее!

+0

Возможно, но не так. Вам нужно 'if's или коммутационный футляр – Hackerdarshi

+1

Не так. Вам нужно будет анализировать ваше выражение как 'String' (или, по крайней мере, тип' char' и два 'int') во время выполнения. –

+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-statement. – SamTebbs33

-1
Character.getNumericValue(c) 

java.lang.Character.getNumericValue (символ ч) возвращает значение INT, что указанный символ Юникода представляет. Например, символ '\ u216C' (римская цифра пятьдесят) вернет int со значением 50.

Буквы AZ в их верхнем регистре ('\ u0041' через '\ u005A'), строчные буквы (' \ u0061 'через' \ u007A '), а вариант полной ширины (' \ uFF21 'через' \ uFF3A 'и' \ uFF41 'через' \ uFF5A ') формы имеют числовые значения от 10 до 35. Это не зависит от Unicode спецификация, которая не присваивает числовым значения этим значениям символов.

Этот метод возвращает числовое значение символа как неотрицательное значение int;

-2 Если символ имеет числовое значение, которое не является неотрицательным целым числом;

-1 если символ не имеет числового значения.

Смежные вопросы