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

+ Recent posts