NumberFormatException при приведении типов из массива строк в Double

я пытаюсь преобразовать строку в двойную. Я мог сделать это во многих ситуациях, но на этот раз это дает мне исключение NumberFormatException. Вот код...

//strExpression = 2^3 (My Input in the editText)

strExpression = edtxtExpression.getText().toString();

try
{
   System.out.println("Inside Power case");
   //expSplit is a String[]
   expSplit = strExpression.split("^");
   double first = Double.parseDouble(expSplit[0]);
   System.out.println("First Number "+first);
   double second = Double.parseDouble(expSplit[1]);
   System.out.println("Second Number "+second);

   double result = Math.pow(first, second);
   System.out.println("Result "+result);
   edtxtExpression.setText(first+" ^ "+second+" = "+result);

}
catch (Exception e) {
    // TODO: handle exception
    Toast.makeText(this, e.getClass().toString(), 100).show();

}

Исключение:::

01-01 03:07:45.169: I/System.out(11287): Inside Power case
01-01 03:07:45.179: I/System.out(11287): class java.lang.NumberFormatException

Я получаю вывод «Inside Power», но другие операторы печати не выполняются. где я ошибаюсь?


person Vamsi Challa    schedule 31.12.2012    source источник
comment
поймать исключение NumberFormatException и распечатать связанное с ним сообщение?   -  person hd1    schedule 01.01.2013
comment
Нет. Я просто хотел узнать, какое исключение. Итак, я произнес тост.   -  person Vamsi Challa    schedule 01.01.2013


Ответы (1)


^ — зарезервированный символ в RegEx, попробуйте \\^.

expSplit = strExpression.split("\\^");
person Sam    schedule 31.12.2012