본문 바로가기
Java

[백준] 코딩테스트 문제 27866 : 문자와 문자열

by 리슈다 2023. 7. 10.

https://www.acmicpc.net/problem/27866

 

27866번: 문자와 문자열

첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$)

www.acmicpc.net

 

 

 

좀 많이 화남

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        String S = sc.next();
        int i = sc.nextInt();
        
        String str = S.substring(i-1, i);
        
        System.out.println(str);
    }
}

 substring을 사용해서 i번째 문자를 출력했다.

 

substring은 문자열을 잘라낼 때 사용한다.

문자열도 문자 배열이기 때문에 0부터 시작하게 된다.(기억하자)

String str = "가나다라마바사다" 이 때 substring(3)을 사용하게 되면 '라마바사다'가 출력된다. 3번 째 문자인 라부터 끝까지 다 출력되는 셈. 만약 substring(4,7) 처럼 범위를 정해주면 '마바사'만 출력된다. 4번 째 문자부터 6번 째 문자까지 출력되는 것. substring(a, b)는 인덱스 a부터 b-1까지 출력한다고 생각하자.

 

 

+ next() 와 nextLine()의 차이점

next()은 공백을 기준으로하여 한 단어를 입력받는다. 사용자가 공백 문자(스페이스, 탭, 개행 등)을 입력하기 전까지의 문자만 읽어온다. 입력 후에는 버퍼에서 공백 이후의 문자열을 남겨둔다.

nextLine()은 한 줄의 문자열을 입력받는다. 개행문자(\n)를 만날 때까지의 모든 문자열을 읽어온다. nextLine()은 개행 문자를 소비하고, 입력된 문자열을 반환한다. 따라서 nextLine()을 호출하면 버퍼를 비운다.

 

https://seeminglyjs.tistory.com/256

 

[Java] Scanner / next() 와 nextLine() 차이를 알아보자.

2021-02-12 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void

seeminglyjs.tistory.com