import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String answer = "";
for(int i = 0; i< a.length();i++){
char c = a.charAt(i);
if(Character.isUpperCase(c)){
answer += Character.toLowerCase(c);
} else{
answer += Character.toUpperCase(c);
}
}
System.out.println(answer);
}
CharAt()
https://project-angieangel.tistory.com/187
Character 객체 메서드
- Character.isLowerCase(c);
- Character.isUpperCase(c);
- Character.toLowerCase(c);
- Character.toUpperCase(c);
대소문자 구별(isUpperCase, isLowerCase)
charAt을 사용하여 첫번째 문자를 추출하고
Character.isUpperCase()를 사용 대문자인지 구별하고
Character.isLowerCase()를 사용 소문자인지 구별
Character.isDigit() 를 사용하여 숫자인지 구별
(주석 처리 해놓은 것처럼 아스키 코드를 사용하여 구분가능)




대문자로 변경(toUpperCase)
public class toUpperCase {
public static void main(String[] args) {
String target = "abcdefg"; //대상 문자열
target = target.toUpperCase(); //대문자로 치환
System.out.println(target); //출력
}
}
toUpperCase()메소드는 문자열을 모두 대문자로 바꾼 새로운 문자열을 생성한 후 리턴
소문자로 변경(toLowerCase)
public class toLowerCase {
public static void main(String[] args) {
String target = "ABCDEFG"; //대상 문자열
target = target.toLowerCase(); //소문자로 치환
System.out.println(target); //출력
}
}
toLowerCase()메소드는 문자열을 모두 소문자로 바꾼 문자열을 리턴
참고) 대소문자 구분없이 비교하기
대/소문자 통일 후 비교
public class Compare_alphabet {
public static void main(String[] args) {
String target1 = "ABCDEFG"; //대상 문자열1
String target2 = "abcdefg"; //대상 문자열2
if(target1.toLowerCase().equals(target2.toLowerCase())) {
System.out.println("두 문자열은 서로 같습니다.");
}else {
System.out.println("두 문자열은 서로 다릅니다.");
}
}
}
자바에서는 영문자를 서로 비교할때 대/소문자가 다르다면 false (같지 않다)가 리턴
만약 대소문자 상관없이 두 문자열을 비교하고 싶다면 toLowerCase()와 toUpperCase() 메소드를 활용하여 비교대상의 두 문자열을 대문자 혹은 소문자로 통일시켜준 뒤 비교
equalsIgnoreCase( ) 메서드 활용
public class equalsIgnoreCase {
public static void main(String[] args) {
String target1 = "ABCDEFG"; //대상 문자열1
String target2 = "abcdefg"; //대상 문자열2
if(target1.equalsIgnoreCase(target2)) {
System.out.println("두 문자열은 서로 같습니다.");
}else {
System.out.println("두 문자열은 서로 다릅니다.");
}
}
}
equalsIgnoreCase() 메소드를 활용하여 비교를 해주는 방법도 가능
참고2) equals vs equalsIgnoreCase() vs Compare To()
equals
대소문자를 구분하며 문자열과 문자열을 비교하여 true/false 를 결과값으로 반환
public class EqualsTest{
public static void main(String[] args){
boolean result;
String target = "hello";
// result : true
result = target.equals("hello");
System.out.println(result);
// result : false(대소문자 구별)
result = target.equals("HELLO");
System.out.println(result);
// result : false
result = target.equals("helloooo");
System.out.println(result);
}
}
equalsIgnoreCase
대소문자를 구분하지않고 문자열과 문자열을 비교하여 true/false 를 결과값으로 반환
public class EqualsIgnoreCaseTest{
public static void main(String[] args){
boolean result;
String target = "hello";
// result : true
result = target.equals("hello");
System.out.println(result);
// result : true(대소문자 구별없이 비교)
result = target.equals("HELLO");
System.out.println(result);
// result : false
result = target.equals("helloooo");
System.out.println(result);
}
}
compareTo
사전적인 순서를 비교하여
target 문자열보다 비교할 문자열이 더 앞에 있다면 : result > 0 (양수)
target 문자열과 비교할 문자열이 같다면 : result = 0 (영)
target 문자열보다 비교할 문자열이 더 뒤에 있다면 : result < 0 (음수)
public class CompareToTest{
public static void main(String[] args){
int result;
String target = "AAB";
// result : 양수
result = target.equals("AAA");
System.out.println(result);
// result : 0
result = target.equals("AAB");
System.out.println(result);
// result : 음수
result = target.equals("AAC");
System.out.println(result);
}
}
https://know-one-by-one.tistory.com/33
https://pink-rabbit.tistory.com/9
https://coding-factory.tistory.com/533
'STUDY > cote' 카테고리의 다른 글
출력의 방식 (0) | 2023.05.09 |
---|---|
백준 문제 (0) | 2022.04.14 |
scanner와 BufferedReader (1) | 2022.03.18 |