Cómo comparar un carácter de una cadena con otra cadena [duplicar]

Posible duplicado:
¿Cómo comparo cadenas en Java?

Soy bastante nuevo en Java y, para practicar, estoy intentando crear un convertidor de números hexadecimales a decimales, ya que he logrado convertir un convertidor de binario a decimal.

El problema que tengo es básicamente comparando un carácter dado en una cadena con otra cadena. Así es como defino el carácter actual que se va a comparar:

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

Así es como trato de comparar el personaje:

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

Cuando intento ejecutar el código ingresando solo números, p. Ej. 12, funciona pero cuando trato de usar una 'b', me sale un error extraño. Aquí está el resultado completo de ejecutar el programa:

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)

Este es un ejemplo de cómo ejecutar con éxito el programa con solo una conversión de números:

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

Cualquier ayuda con esto sería apreciada, gracias.

Editar: Creo que será útil si pongo el método completo aquí.

Edición 2: ¡RESUELTO! No sé a quién respondo y debería aceptarlo porque todos fueron muy buenos y serviciales. Tan conflictivo.

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
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta