문제설명
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
제한사항
- 1 <= str의 길이 <= 1,000,000
- str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
입력 #1
HelloWorld!
출력 #1
HelloWorld!
[제출 답안]
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
a = a.replace(" ","");
if(a.length() >= 1 && a.length() <= 1000000)
System.out.println(a);
}
}
[풀이과정]
핵심 메소드: replace()
입력받은 str 문자열에는 공백이 없으며 첫째줄에 한줄로만주어진다.
String의 replace함수를 사용하여 입력받은 문자열의 공백문자 " "를 ""로 치환하도록 설정하였다
그 후 if 조건문을 통해 공백문자열을 제거한 문자열 a의 길이의 조건을 지정하였다.
[다른사람 풀이]
핵심 메소드: contains(), trim()
contains()
String의 contains() 메소드에는 함수의 매개값으로 지정한 값의 포함 여부를 묻는다.
따라서 if조건문의 마지막에 입력받은 해당 문자열 str에 특정 문자의 포함여부를 조건으로 추가하는 방법이 있다.
if (str.length() > 1 && str.length() < 1000000 && !str.contains(" ")) {}
trim()
String의 trim() 메소드는 현재 문자열의 양 끝 공백을 제거해주는 메소드이다.
따라서 Scanner를 통해 입력받는 시점에 해당 메소드를 통해 공백을 제거하면서 문자열을 저장하는 방법이 있다.
Scanner sc = new Scanner(System.in);
String a = sc.next().trim();
Scanner의 next() 메소드는 공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
즉, 예를들어 '나는 바보다' 라고 입력할경우 '나는' 까지만 인식이 되고 공백문자 이후의 문자인 '바보다'는 버퍼에 남게된다.
이떄 next()직후 trim()을 통해 공백을 제거한다면 공백을 입력하더라도 호출이 종료되지 않게되면서 '바보다'가 버퍼에 남지 않는다.
다시말해, '나는바보다' 라는 한문자로 이어져서 저장하게된다.
'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글
[6] JAVA 덧셈식 출력하기 (0) | 2023.11.14 |
---|---|
[5] JAVA 특수문자 출력하기 (0) | 2023.11.14 |
[4] JAVA 대소문자 바꿔서 출력하기 (0) | 2023.11.13 |
[3] JAVA 문자열 반복해서 출력하기 (1) | 2023.11.13 |
[2] JAVA a와 b 출력하기 (0) | 2023.11.13 |