Java를 사용 String
하여 사용자로부터 입력을 받고 있습니다. 이 입력의 첫 글자를 대문자로 만들려고합니다.
나는 이것을 시도했다 :
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
이 컴파일러 오류가 발생했습니다 :
-
유형 불일치 : InputStreamReader에서 BufferedReader로 변환 할 수 없습니다
-
기본 유형 char에서 toUppercase ()를 호출 할 수 없습니다.
답변
String str = "java";
String cap = str.substring(0, 1).toUpperCase() + str.substring(1);
// cap = "Java"
예를 들면 다음과 같습니다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// Actually use the Reader
String name = br.readLine();
// Don't mistake String object with a Character object
String s1 = name.substring(0, 1).toUpperCase();
String nameCapitalized = s1 + name.substring(1);
System.out.println(nameCapitalized);
}
답변
답변
문자열의 첫 글자를 대문자로하는 더 짧고 빠른 버전 코드는 다음과 같습니다.
String name = "stackoverflow";
name = name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase();
의 가치 name
는"Stackoverflow"
답변
Apache의 공통 라이브러리를 사용하십시오. 이러한 것들로부터 당신의 두뇌를 해방하고 Null Pointer & Index Out of Bound 예외를 피하십시오
1 단계:
build.gradle
의존성 을 두어 Apache의 공통 lang 라이브러리를 가져옵니다.
compile 'org.apache.commons:commons-lang3:3.6'
2 단계:
문자열이 모두 소문자인지 확실하거나 첫 글자를 초기화하는 것만 필요하면 직접 전화하십시오.
StringUtils.capitalize(yourString);
당신은 단지 첫 번째 문자가이 일을 같이 대문자로되어 있는지 확인하려면 enum
전화 toLowerCase()
먼저하고 던질 것이다 것을 명심 NullPointerException
입력 문자열이 null 인 경우.
StringUtils.capitalize(YourEnum.STUFF.name().toLowerCase());
StringUtils.capitalize(yourString.toLowerCase());
아파치에서 제공하는 더 많은 샘플이 있습니다. 예외가 없습니다
StringUtils.capitalize(null) = null
StringUtils.capitalize("") = ""
StringUtils.capitalize("cat") = "Cat"
StringUtils.capitalize("cAt") = "CAt"
StringUtils.capitalize("'cat'") = "'cat'"
노트 :
WordUtils
이 라이브러리에도 포함되어 있지만 더 이상 사용되지 않습니다. 제발 하지 않는 것을 사용합니다.
답변
자바:
모든 문자열을 대문자로하는 도우미 메소드 일뿐입니다.
public static String capitalize(String str)
{
if(str == null) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
그 후 단순히 전화 str = capitalize(str)
코 틀린 :
str.capitalize()
답변
당신이하고 싶은 것은 아마도 이것입니다 :
s1 = name.substring(0, 1).toUpperCase() + name.substring(1);
(첫 번째 문자를 대문자로 변환하고 원래 문자열의 나머지를 추가합니다)
또한 입력 스트림 리더를 작성하지만 행을 읽지 마십시오. 따라서 name
항상 있습니다 null
.
이것은 작동해야합니다 :
BufferedReader br = new InputstreamReader(System.in);
String name = br.readLine();
String s1 = name.substring(0, 1).toUpperCase() + name.substring(1);