Я знаю, что в Java и в других средах, таких как Apache commons lang, существует множество upper()
методов, которые преобразуют строку в верхний регистр.
Существуют ли общие библиотеки, которые предоставляют метод, такой как isUpper(String s)
и isLower(String s)
, чтобы проверить, все ли символы в строке являются прописными или строчными?
EDIT:
Много хороших ответов о преобразовании в Upper и сравнении с этим. Думаю, мне следовало быть более конкретным и сказать, что я уже думал об этом, но я надеялся, что смогу использовать для этого существующий метод.
Хороший комментарий о возможном включении этого в apache.commons.lang.StringUtils.
Кто-то даже представил патч (20090310). Надеюсь, мы скоро это увидим.
https://issues.apache.org/jira/browse/LANG-471
EDIT:
Для чего мне был нужен этот метод, было использовать заглавные буквы отелей, которые иногда вводились заглавными буквами. Я только хотел сделать их заглавными, если они все были в нижнем или верхнем регистре.
Я столкнулся с проблемами с буквами без букв, упомянутыми в некоторых постах, и в итоге сделал что-то вроде этого:
private static boolean isAllUpper(String s) {
for(char c : s.toCharArray()) {
if(Character.isLetter(c) && Character.isLowerCase(c)) {
return false;
}
}
return true;
}
Это обсуждение и разные решения (с разными проблемами) ясно показывают, что в commons.lang
нужен хороший твердый метод isAllUpper (String s).
До тех пор я думаю, что myString.toUpperCase().equals(myString)
- лучший путь.