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 |