입력받은 데이터(바이트)를 다양한 타입으로 변환하여 반환하는 클래스 (
java.util
패키지)
nextInt()
, nextLine()
, ... 등 원하는 타입의 데이터를 읽을 수 있음✏️ 사용법
import java.util.Scanner;
public class Scanner_ {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("값을 입력하세요. : ");
int i = s.nextInt(); // 값 입력받음
}
}
데이터를 한 번에 읽어와 버퍼에 보관한 후, 버퍼에서 데이터를 읽어오는 클래스 (
java.io
패키지)
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
// 정수형 데이터가 필요한 경우, 파싱 필요
int a = Integer.parseInt(str);
}
}
String.split(" ")
함수를 통해, 입력받은 데이터를 공백 단위로 끊어서 배열에 저장 가능!
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]); // 공백 기준 i번째 데이터
}
}
}
StringTokenizer의
nextToken()
함수를 통해, 입력받은 데이터를 공백 단위로 끊어서 호출 가능!
import java.io.*;
import java.util.StringTokenizer;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
System.out.println(st.nextToken()); // 공백 기준 첫번째 데이터
System.out.println(st.nextToken()); // 공백 기준 두번째 데이터
}
}
System.out.println();
과 동일 기능 수행 ➡️ 속도가 빠르고, 많은 양의 데이터 처리에 유리!
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw
= new BufferedWriter(new OutputStreamWriter(System.out));
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
bw.write(arr[i]);
bw.newLine(); // 개행
}
bw.close();
}
}
✏️ : write() 함수는 개행을 수행하지 않기 때문에, 개행문자(\n
)를 사용하거나, newLine() 함수를 통해 줄바꿈 가능
close()
: 스트림 닫음 flush()
: 스트림 비움 ➡️ 버퍼를 사용 한 후에 반드시 닫거나 비워줘야 함!newLine()
: 개행write()
: 출력 ➡️ String 타입만 출력 가능 (정수 출력 시, String.ValueOf()
함수를 사용하거나, " "
를 더해서 String 타입으로 변환)문자열을 추가, 삭제, 변경할 수 있는 메서드 제공
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder(); // 객체 생성
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
sb.append(arr[i]).append("! ");
}
bw.write(sb.toString());
br.close();
bw.close();
}
}
append(String s)
: 문자열 뒤에 문자열 s
를 붙임delete(int start, int end)
: 문자열의 start
~ end
인덱스까지 삭제insert(int offet, any primitive of char[])
: 특정 인덱스에 문자 삽입replace(int start, int end, String s)
: start
~ end
인덱스의 문자열을 s
로 치환reverse()
: 순서 뒤집음setCharAt(int idx, char ch)
: idx
인덱스의 문자를 ch
로 치환indexOf(String s)
: s
값이 위치한 인덱스 확인subString(int start, int end)
: start
~ end
인덱스 사이의 값 추출