8 ответов:
предполагая, что
sнепуст:Character.isUpperCase(s.charAt(0))или, как упоминалось divec, чтобы заставить его работать для символов с кодовыми точками выше
U+FFFF:Character.isUpperCase(s.codePointAt(0));
на самом деле, это тоньше, чем кажется.
приведенный выше код даст неверный ответ для символа нижнего регистра, кодовая точка которого была выше U+FFFF (например, U+1D4C3, математический скрипт SMALL N). Строка.чарат вернул бы суррогатную пару UTF-16, которая не является персонажем, а скорее половиной персонажа, так сказать. Так что вы должны использовать строку.codePointAt, который возвращает int выше 0xFFFF (не char). Вы бы сделали:
Character.isUpperCase(s.codePointAt(0));не чувствуйте себя плохо, упустив это; почти все Java-кодеры плохо обрабатывают UTF-16, потому что терминология вводит в заблуждение, заставляя вас думать, что каждое значение "char" представляет собой символ. UTF-16 отстой, потому что это почти фиксированная ширина, но не совсем. Поэтому случаи с нефиксированной шириной края, как правило, не проверяются. Пока однажды не появится какой-то документ, в котором содержится символ, такой как U+1D4C3, и вся ваша система взорвется.
есть много способов сделать это, но самым простым представляется следующий:
boolean isUpperCase = Character.isUpperCase("My String".charAt(0));
мы можем найти заглавную букву, используя регулярное выражение, а также
private static void findUppercaseFirstLetterInString(String content) { Matcher m = Pattern .compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher( content); System.out.println("Given input string : " + content); while (m.find()) { if (m.group(1).equals(m.group(1).toUpperCase())) { System.out.println("First Letter Upper case match found :" + m.group()); } } }для детального примера . пожалуйста, посетите http://www.onlinecodegeek.com/2015/09/how-to-determines-if-string-starts-with.html
не забудьте проверить, является ли строка пустой или
null. Если мы забудем проверитьnullили пустой, то мы получимNullPointerExceptionилиStringIndexOutOfBoundExceptionесли заданная строка является нулевой или пустой.public class StartWithUpperCase{ public static void main(String[] args){ String str1 = ""; //StringIndexOfBoundException if //empty checking not handled String str2 = null; //NullPointerException if //null checking is not handled. String str3 = "Starts with upper case"; String str4 = "starts with lower case"; System.out.println(startWithUpperCase(str1)); //false System.out.println(startWithUpperCase(str2)); //false System.out.println(startWithUpperCase(str3)); //true System.out.println(startWithUpperCase(str4)); //false } public static boolean startWithUpperCase(String givenString){ if(null == givenString || givenString.isEmpty() ) return false; else return (Character.isUpperCase( givenString.codePointAt(0) ) ); } }
убедитесь, что вы сначала проверяете null и empty и ten преобразует существующую строку в верхнюю. Используйте S. O. P, если хотите видеть выходы в противном случае boolean, как это сделал Рабиз.
public static void main(String[] args) { System.out.println("Enter name"); Scanner kb = new Scanner (System.in); String text = kb.next(); if ( null == text || text.isEmpty()) { System.out.println("Text empty"); } else if (text.charAt(0) == (text.toUpperCase().charAt(0))) { System.out.println("First letter in word "+ text + " is upper case"); } }
Если вам нужно проверить его вручную, вы можете сделать
int a = s.charAt(0)если значение a находится в диапазоне от 65 до 90, это верхний регистр.
String yourString = "yadayada"; if (Character.isUpperCase(yourString.charAt(0))) { // print something } else { // print something else }
Comments