본문 바로가기

개발/코테

[JAVA] 문자열 붙여서 출력하기

[문제]

두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.

[내 풀이]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        System.out.print(a+b);
    }
}

+기호 사용 시 문자열은 합쳐서 출력

 

[다른 사람의 풀이]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print(br.readLine().replaceAll(" ", ""));
    }
}

*BuferedReader  연습

- 하드디스크의 관점에서 볼 때, 키보드의 입력이 있을 때마다 바로 이동시키는 것 보다는, 중간에 버퍼를 두어 한 번에 묶어 보내는 것이 더 효율적이고 빠름.

- 많은 입력을 필요로 할 때 유리

 

<사용법>

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
String s = br.readLine(); //String으로 return값이 고정되어있음
int i = Integer.parseInt(br.readLine()); //다른 타입으로 입력받기 위해서는 형변환이 필요

- 예외처리를 반드시 필요로 함 

 

*Scanner와 BufferedReader의 차이

Scanner BufferedReader
띄어쓰기와 개행문자를 경계로 입력 값 인식 개행문자만 경계로 인식
*공백 단위로 가공하고자 하면 StringTokenizer나 String.split()함수 사용
입력 값을 따로 가공할 필요 없음 입력 받은 데이터가  String으로 고정 -> 가공 필요
동기화되지 않음 동기화 -> 멀티 쓰레드 환경에서 안전

 

'개발 > 코테' 카테고리의 다른 글

[JAVA] 홀짝 구분하기  (0) 2024.03.26
[JAVA] 문자열 돌리기  (0) 2024.03.26
[JAVA] [PCCE 기출문제] 8. 창고정리  (0) 2024.03.19
[JAVA] [PCCE 기출문제] 6.가채점  (0) 2024.03.19
[JAVA] [PCCE 기출 문제] 5. 산책  (0) 2024.03.19