2013-10-10 3 views
2

Могу ли я объединить две переменные CharSequence?Объединение двух переменных CharSequence

if (status == 1) { 
    for (int i = 0; i < get.length(); i++) { 
     if (get.charAt(i) == ')') { 
     } else { 
      temp = temp.toString() + get.charAt(i);  
      // temp and get are charSequence VARIABLES 
     } 
    } 
}   

Синтаксис выглядит нормально, так как ошибок нет в компиляторе, но приложение терпит крах.

Также я не хочу попасть в List и ArrayList пунктов на этом этапе новичка. Любая идея, что я делаю неправильно?

Также, если вы говорите, что я не должен использовать метод .toString(), тогда я понимаю, но что мне делать, чтобы сделать его правильным?

+0

Из-за 'ToString()' вы делаете Объединение строк. С какой ошибкой связано ваше приложение? –

+0

работает над созданием калькулятора, поэтому исключая закрытие paranthesis в if statemnet .... – Muneeb

+0

он просто сбой .... Force close – Muneeb

ответ

0

Вы уверены, что get не имеет значения?

Я пробовал ваш код, и он работает.

Отладить и предоставить значения, для которых ваше приложение рушится.

и вы можете достичь того же результата с:

temp = temp.toString() + get.toString().replaceAll("\\)", ""); 
+0

yp im sure get is not null ... но ваш код строки выглядит intersting ... позвольте мне попробовать. – Muneeb

+0

как насчет переменной 'temp', может ли она быть« нулевой »? –

+0

umm. на самом деле я хочу решить его в выражении if, когда я сталкиваюсь с закрывающей скобкой .. поэтому я не хочу просто преобразовывать целую «get charSequence variable» в одну строку .... мне нужно пройти через все символы и ответить, когда я получаю символы .... – Muneeb

1

Ну первое, вы можете думать о рефакторинга кода немного:

if (status == 1) { 
    for (int i = 0; i < get.length(); i++) { 
     if (!(get.charAt(i) == ')')) { 
      temp += get.charAt(i); 
     }     
    } 
} 

Ошибка вы столкнулись находится в другом месте вашего кода. Это одно исключение.

Кроме того, для синтаксического анализа, вы должны думать о регулярных выражениях:

String tryThis = temp.replaceAll("\\)", ""); 
0

Да, это хорошо, но то, что главная цель, которую вы ищете?

Обычно для таких вещей мы используем String, потому что он имеет различные методы. Кроме того, вы можете пойти с StringBuffer, но первое, что должно быть, это главная цель.

+0

Основная цель - сделать калькулятор вроде casio :). пользователь войдет в алгебраическое выражение, и мне нужно получить его ответ ... так что выражение находится в символьном формате ... в этот момент я пытаюсь сначала разрешить скобки ... вот почему мне нужно разбить это выражение, чтобы решить его ... – Muneeb