2015-03-01 4 views
0

Итак, у меня есть проект для школы, над которым я работаю, и надеялся, что вы, ребята, сможете просмотреть мой код и рассказать мне, что я могу делать неправильно. Мне нужно, чтобы все числа 0-9 заменялись их словами, но любое число выше, чтобы оставаться неизменным.Замена номеров словами

это код сейчас и мои рассуждения

Im в моем конце остроумия с 12 не печатает Onetwo. Ive пытался все прямо сейчас у меня есть

for (int i=0; i < stringBuilder.length(); i++) 
    { 
    if ((stringBuilder.charAt(i) == '0' || stringBuilder.charAt(i) == '1' || stringBuilder.charAt(i) == '2' || stringBuilder.charAt(i) == '3' || stringBuilder.charAt(i) == '4' || stringBuilder.charAt(i) == '5' ||   stringBuilder.charAt(i) == '6' || 
     stringBuilder.charAt(i) == '7' || stringBuilder.charAt(i) == '8' || stringBuilder.charAt(i) == '9')&& (stringBuilder.charAt(i-1) != '0' || stringBuilder.charAt(i-1) != '1' || stringBuilder.charAt(i-1) != '2' || stringBuilder.charAt(i-1) != '3' || stringBuilder.charAt(i-1) != '4' 
     || stringBuilder.charAt(i-1) != '5' || stringBuilder.charAt(i-1) != '6' || stringBuilder.charAt(i-1) != '7' || stringBuilder.charAt(i-1) != '8' || stringBuilder.charAt(i-1) != '9') && (stringBuilder.charAt(i+1) == '0' || stringBuilder.charAt(i+1) == '1' 
     || stringBuilder.charAt(i+1) == '2' || stringBuilder.charAt(i+1) == '3' || stringBuilder.charAt(i+1) == '4' || stringBuilder.charAt(i+1) == '5' || stringBuilder.charAt(i+1) == '6' || stringBuilder.charAt(i+1) == '7' || stringBuilder.charAt(i+1) == '8' || stringBuilder.charAt(i+1) == '9')) 
     { 

в основном это первый работает Повсеместно для цикла, чтобы найти, если какой-либо из позиций у меня есть эти значения, то это положение (я) - 1, чтобы увидеть, если это позиция до того, как i также является одним из чисел, тогда он делает то же самое для i + 1, однако я получаю ошибку о некорректном диапазоне значений -1. Может ли кто-нибудь предложить помощь?

+0

Если вы начинаете с 'i = 0', куда бы вы ни отправили' i - 1' в 'charAt()', вы получите сообщение об ошибке, чтобы получить символ '-1'. – jas

+0

Повторяющийся вопрос: http://stackoverflow.com/questions/28799408/alternative-to-switch-replacing-characters – Everv0id

+0

См. Мой ответ: http://stackoverflow.com/a/28799565/2487403 – Everv0id

ответ

1

Поскольку вы начинаете с i = 0, вы не можете использовать charAt(i-1), потому что -1 является недействительным индекс.

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