[출력] 문자열 중간 공백 제거│문자열 출력│문자열 반복 출력│for문│대소문자 변환│특수 문자 출력

2024. 1. 26. 11:59Pratice/CodingTest

반응형

📙 문제 1.

문자열 str 출력

 

조건

1 ≤ str길이 ≤ 1,000,000

str에 공백 없음.

 

✏️ 정답.

문자열 입/출력

Scanner sc = new Scanner(System.in);
String str = sc.next();

 

문자열 길이

str.length()

 

문자열 변경 (공백제거)

str.replace(" ", "");

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        
        if(1 <= str.length() && str.length() <= 1000000) {
            String result = str.replace(" ", "");
            System.out.println(result);
        }
        
    }
}

 

 


 

📙 문제 2.

정수 a와 b를 각각 출력

 

조건

-100,000 ≤ a, b ≤ 100,000

str에 공백 없음.

 

✏️ 정답.

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        if(-100000 <= a && a <= 100000 && -100000 <= b && b <= 100000) {
            System.out.println("a = "+a);
            System.out.println("b = "+b);
        }

    }
}

 

 


 

📙 문제 3.

문자열 str를 정수 n번만큼 출력

 

조건

1 ≤ str길이 ≤ 10

1 ≤ n ≤ 5

 

✏️ 정답.

StringBuilder에 문자열을 누적

 

append 메서드

문자열을 덧붙이는데 사용

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int n = sc.nextInt();
        
        if (1 <= str.length() && str.length() <= 10 && 1 <= n && n <= 5) {
            
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < n; i++) {
                sb.append(str);
            }
            System.out.println(sb.toString());
        } else {
            System.out.println("조건을 만족하지 않습니다.");
        }
        
    }
}

 

 


 

📙 문제 4.

영어 알파벳으로 이루어진 문자열 str

대문자는 소문자로, 소문자는 대문자로 변환해서 출력

 

조건

1 ≤ str길이 ≤ 20

str은 알파벳으로 이루어진 문자열

 

✏️ 정답.

toCharArray

입력받은 문자열을 문자 단위로 나누기

 

향상된 for문

for (char c : str.toCharArray())

문자열 str을 문자 배열로 변환하고, 각 문자를 c에 순차적으로 대입하여 반복문을 수행

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        
        //Scanner 객체를 생성하여 표준 입력(System.in)에서 문자열을 입력받기
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        //입력받은 문자열의 길이가 1 이상이면서 20 이하인지 확인
        if (1 <= str.length() && str.length() <= 20) {
            
            //문자열을 변환한 결과를 저장할 StringBuilder 객체를 생성
            StringBuilder result = new StringBuilder();

            //입력받은 문자열을 문자 단위로 나누기
            //toCharArray 메서드를 사용한 향상된 for문
            for (char c : str.toCharArray()) {
                
                //대문자인 경우 소문자로, 소문자인 경우 대문자로 변환
                if (Character.isUpperCase(c)) {
                    result.append(Character.toLowerCase(c));
                } else if (Character.isLowerCase(c)) {
                    result.append(Character.toUpperCase(c));
                } else {
                    //그렇지 않은 경우 그대로 유지
                    result.append(c);
                }
            }

            //변환된 결과를 출력
            System.out.println(result.toString());
        } else {
            //조건을 만족하지 않을 경우
            System.out.println("조건을 만족하지 않습니다.");
        }
        
    }
}

 

 


 

📙 문제 5.

!@#$%^&*(\'"<>?:; 출력

 

✏️ 정답.

특수 문자열을 출력하기 위해서는 이스케이프 문자를 사용

 

  • 백슬래시(\) 출력: \\
  • 작은따옴표(') 출력: \'
  • 큰따옴표(") 출력: \"
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        
         System.out.print("!@#$%^&*(\\'\"<>?:;");
        
    }
}

( \' 앞에 \\가 있기때문에 중복 사용 가능!  \\ \'   \\')

 

 

반응형