Scanner sc = new Scanner(System.in);
String a = sc.next();
char[] ch = a.toCharArray();
for (char c: ch) {
if (Character.isUpperCase(c)) {
c = Character.toLowerCase(c);
} else {
c = Character.toUpperCase(c);
}
System.out.print(c);
}
.toCharArray()
String을 한글자씩 쪼개서 char 타입의 배열에 집어넣는 메서드.
Character.isUpperCase(char or int)
전달값() 이 대문자인 경우 true, 아니면 false 반환.
int 타입은 아스키 코드를 말함.
Character.isLowerCase(char or int)
전달값() 이 소문자인 경우 true, 아니면 false 반환.
int 타입은 아스키 코드를 말함.
.toUpperCase() / .toLowerCase()
소문자를 대문자로 변환하는 메서드.
두 가지 경우로 쓰일 수 있음.
.toLowerCase() 도 마찬가지임. -- 대문자를 소문자로 변환하는 메서드.
1) String 값 변환
String.toUpperCase()
String str = "hello";
System.out.print(str.toUpperCase());
// HELLO
2) char 값 변환
Character.toUpperCase(char)
char c = 'h';
System.out.print(Character.toUpperCase(c));
// H
※ 아스키코드 차이값으로 대소문자 변환
▼ 아스키 코드 표
Scanner sc = new Scanner(System.in);
String a = sc.next();
for(int i=0; i<a.length(); i++) {
char c = a.charAt(i);
if(Character.isUpperCase(c)) {
System.out.print((char)(c+32));
}
else {
System.out.print((char)(c-32));
}
}
char 타입에 숫자를 더하면 자동으로 아스키 코드값으로 계산해줌.
32는 대소문자 차이 값.
※ charAt() 메서드로 String을 char로 변환
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for (int i=0; i<a.length(); i++) {
char index = a.charAt(i);
if (index >= 65 && index <= 90) {
answer += String.valueOf(index).toLowerCase();
} else {
answer += String.valueOf(index).toUpperCase();
}
}
System.out.println(answer);
.charAt()
charAt() 은 String 값의 인덱스 값으로 하나의 char을 반환하는 메서드.
String str = "hello";
char c = str.charAt(0);
System.out.print(c);
// h
String.valueOf() / .toString()
String으로 형변환 하는 메서드.
char c = 'h';
String str1 = String.valueOf(c);
String str2 = c.toString();
// str1와 str2는 같음.
Object obj = null
System.out.println(String.valueOf(obj); // null
System.out.println(obj.toString()); // NullPointerException error!!