Java에서 문자열의 첫 번째 문자가 정규식없이 대문자인지 확인하는 방법
Java에서는 정규식을 사용하지 않고 문자열의 첫 번째 문자가 대문자인지 확인합니다.
s
비어 있지 않다고 가정합니다 .
Character.isUpperCase(s.charAt(0))
또는 divec에서 언급했듯이 위의 코드 포인트가있는 문자에 대해 작동하도록하려면 다음을 수행하십시오 U+FFFF
.
Character.isUpperCase(s.codePointAt(0));
실제로 이것은보기보다 미묘합니다.
위의 코드는 코드 포인트가 U + FFFF (예 : U + 1D4C3, MATHEMATICAL SCRIPT SMALL N)보다 높은 소문자에 대해 오답을 제공합니다. String.charAt은 문자가 아니라 문자의 절반 인 UTF-16 서로 게이트 쌍을 반환합니다. 따라서 0xFFFF (문자 아님) 이상의 int를 반환하는 String.codePointAt을 사용해야합니다. 당신은 할 것입니다 :
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
주어진 문자열의 경우는 null 또는 빈입니다.
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 및 비어 있는지 확인하고 10은 기존 문자열을 대문자로 변환합니다. 출력을 보려면 SOP를 사용하십시오. 그렇지 않으면 Rabiz처럼 부울입니다.
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
}
'Development Tip' 카테고리의 다른 글
객체가 Java에서 컬렉션 유형인지 확인하는 방법은 무엇입니까? (0) | 2020.11.29 |
---|---|
두 개의 STL 맵을 병합하려면 어떻게해야합니까? (0) | 2020.11.29 |
Q_OBJECT에서 'vtable에 대한 정의되지 않은 참조'오류 발생 (0) | 2020.11.29 |
! function ($) {$ (function () {})} (window.jQuery)는 무엇을합니까? (0) | 2020.11.29 |
날짜 형식화 후 오전 및 오후를 소문자로 표시 (0) | 2020.11.29 |