Подтвердить что ты не робот

В Java, как найти, является ли первый символ в строке верхним регистром без регулярного выражения

В Java найдите, является ли первый символ в строке верхним регистром без использования регулярных выражений.

4b9b3361

Ответ 1

Предполагая, что s непусто:

Character.isUpperCase(s.charAt(0))

или, как упоминалось, divec, чтобы он работал для символов с кодовыми точками выше U+FFFF:

Character.isUpperCase(s.codePointAt(0));

Ответ 2

Собственно, это более тонко, чем кажется.

Приведенный выше код дал бы неправильный ответ для символа нижнего регистра, чья кодовая точка была выше U + FFFF (например, U + 1D4C3, MATHEMATICAL SCRIPT SMALL N). String.charAt вернул бы суррогатную пару UTF-16, которая не является персонажем, а, скорее, наполовину персонажем. Таким образом, вы должны использовать String.codePointAt, который возвращает int выше 0xFFFF (а не char). Вы бы сделали:

Character.isUpperCase(s.codePointAt(0));

Не обижайтесь на это; почти все Java-кодеры плохо обрабатывают UTF-16, потому что эта терминология вводит вас в заблуждение, заставляя вас думать, что каждое значение "char" представляет символ. UTF-16 отстой, потому что это почти фиксированная ширина, но не совсем. Таким образом, крайние случаи с фиксированной шириной не проходят проверку. До одного дня появляется какой-то документ, в котором содержится символ U + 1D4C3, и вся ваша система взрывается.

Ответ 3

Существует много способов сделать это, но самый простой выглядит следующим образом:

boolean isUpperCase = Character.isUpperCase("My String".charAt(0));

Ответ 4

мы можем найти букву верхнего регистра, используя также регулярное выражение

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

Ответ 5

Не забудьте проверить, является ли строка пустой или null. Если мы забудем проверить null или пустое, мы получим NullPointerException или StringIndexOutOfBoundException, если заданная String является пустой или пустой.

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) ) );
        }

    }

Ответ 6

Убедитесь, что вы сначала проверяете значение null и empty и десять преобразуете существующую строку в верхнюю. Используйте S.O.P, если хотите видеть выходы, в противном случае логические, как это сделал Рабиз.

 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");
     }
  }

Ответ 7

Если вам нужно проверить это вручную, вы можете сделать int a = s.charAt(0)

Если значение a находится между 65 и 90, это верхний регистр.

Ответ 8

String yourString = "yadayada";
if (Character.isUpperCase(yourString.charAt(0))) {
    // print something
} else {
    // print something else
}