Как сравнить один символ из строки с другой строкой [duplicate]

Возможный дубликат:
Как сравнить строки в Java?

Я довольно новичок в Java и на практике пытаюсь создать преобразователь шестнадцатеричных в десятичные числа, так как мне успешно удалось преобразовать двоичные числа в десятичные.

Проблема, с которой я столкнулся, заключается в том, что я сравниваю данный символ в строке с другой строкой. Вот как я определяю текущий символ, который нужно сравнить:

String current = String.valueOf(hex.charAt(i));

Вот как я пытаюсь сравнить персонажа:

else if (current == "b") 
   dec += 10 * (int)Math.pow(16, power);

Когда я пытаюсь запустить код, вводя только цифры, например 12, это работает, но когда я пытаюсь использовать 'b', я получаю странную ошибку. Вот весь результат запуска программы:

run:
Hello! Please enter a hexadecimal number.
2b
For input string: "b" // this is the weird error I don't understand
BUILD SUCCESSFUL (total time: 1 second)

Вот пример успешного запуска программы с помощью только преобразования чисел:

run:
Hello! Please enter a hexadecimal number.
22
22 in decimal: 34 // works fine
BUILD SUCCESSFUL (total time: 3 seconds)

Любая помощь с этим будет оценена, спасибо.

Редактировать: Думаю, будет полезно, если я выложу здесь весь метод.

Редактировать 2: решено! Я не знаю, чей ответ я должен принять, потому что все они были так хороши и полезны. Так противоречиво.

for (int i = hex.length() - 1; i >= 0; i--) {
        String lowercaseHex = hex.toLowerCase();
        char currentChar = lowercaseHex.charAt(i);

        // if numbers, multiply them by 16^current power
        if (currentChar == '0' || 
                currentChar == '1' || 
                currentChar == '2' || 
                currentChar == '3' || 
                currentChar == '4' || 
                currentChar == '5' || 
                currentChar == '6' || 
                currentChar == '7' || 
                currentChar == '8' || 
                currentChar == '9')
            // turn each number into a string then an integer, then multiply it by
            // 16 to the current power.
            dec += Integer.valueOf(String.valueOf((currentChar))) * (int)Math.pow(16, power);

        // check for letters and multiply their values by 16^current power
        else if (currentChar == 'a') 
            dec += 10 * (int)Math.pow(16, power);
        else if (currentChar == 'b') 
            dec += 11 * (int)Math.pow(16, power);
        else if (currentChar == 'c') 
            dec += 12 * (int)Math.pow(16, power);
        else if (currentChar == 'd') 
            dec += 13 * (int)Math.pow(16, power);
        else if (currentChar == 'e') 
            dec += 14 * (int)Math.pow(16, power);
        else if (currentChar == 'f') 
            dec += 15 * (int)Math.pow(16, power);
        else
            return 0;
        power++; // increment the power
    }

    return dec; // return decimal form
}

Ответы на вопрос(0)

Ваш ответ на вопрос