2013-05-19 1 views
2

Привет, я пытаюсь написать небольшой сегмент кода, который проверяет, есть ли каждый из char в массиве в нижнем регистре или в верхнем регистре. Сейчас он использует номер ASCII символа для проверки. После того, как он проверяет, он должен преобразовать символ в верхний регистр, если это уже не так:Преобразование строчного символа в массиве символов в верхний регистр (java)

for (int counter = 0; counter < charmessage.length; counter++) { 
    if (91 - charmessage[counter] <= 0 && 160 - charmessage[counter] != 0) { 
    charmessage[counter] = charmessage[counter].toUpperCase(); 
    } 
} 

charmessage уже инициализирован ранее в программе. Часть 160 должна убедиться, что она не преобразует пространство в верхний регистр. Как мне получить метод .toUpperCase?

+1

И еще одна вещь, из документации 'Character':« В общем, 'String.toUpperCase()' следует использовать для сопоставления символов в верхнем регистре. Методы сопоставления случайных строк имеют несколько преимуществ по сравнению с методами отображения символов. методы сопоставления могут выполнять локально-чувствительные сопоставления, контекстно-зависимые сопоставления и 1: M символьные отображения, тогда как методы отображения случайных символов не могут. " Просто что-то, чтобы иметь в виду :) – T045T

ответ

1

Я сделал бы это таким образом. Сначала проверьте, является ли символ буквой, и если она строчная. После этого просто используйте Character.toUpperCase (обугленную ч)

if(Character.isLetter(charmessage[counter]) && Character.isLowerCase(charmessage[counter])){ 
    charmessage[counter] = Character.toUpperCase(charmessage[counter]); 
} 
+0

Спасибо человеку! Я сделал это только с помощью ASCII, потому что не знал, что существует isLetter. –

+2

Тест 'isLetter()' либо избыточный, либо слишком ограничительный. См. Javadoc для 'isLowerCase()'. Собственно, так же, как и весь тест: см. Javadoc для 'toUpperCase()'. – EJP

1

Вы можете использовать Character#toUpperCase для этого. Пример:

char a = 'a'; 
char upperCase = Character.toUpperCase(a); 

У этого есть некоторые ограничения. Очень важно, что вы знаете, что мир знает о многих других персонажах, которые могут вписываться в 16-битный диапазон.