https://www.tutorialspoint.com/java/java_files_io.html
자바 튜토리얼에 잘설명되어 있음.
파이썬으로 코테 공부를 해왔던 나에게는 자바의 입력 방식이 상당히 헷갈렸다. 한번 관련된 클래스들을 정리해보자~
import java.io.IOException;
import java.io.InputStream;
public class main {
public static void main(String[] args) throws IOException {
InputStream input = System.io;
int val = input.read();
}
}
import java.io.IOException;
import java.io.InputStream;
public class main {
InputStream input = System.io;
InputStreamReader read = new InputStreamReader(input);
char[] vals = new char[4];
read.read(vals);
}
import java.io.*
public class main {
public static void main(String[] args) throws IOException {
InputStream input = System.in;
InputStreamReader read = new InputStreamReader(input);
BufferedReader br = new BufferedReader(reader);
String vals = br.readLine();
}
}
생성자 종류 |
---|
StringTokenizer st = new StringTokenizer(문자열); |
StringTokenizer st = new StringTokenizer(문자열, 구분자); |
StringTokenizer st = new StringTokenizer(문자열, 구분자, true/false [구분자를 토크으로 넣을지 (default는 false)]); |
생성자의 종류는 위와 같다.
대부분 빈칸으로 토큰을 구분하는 경우가 많기 때문에 그러한 경우 가장 상위의 생성자로 호출을 하면된다.
메서드 | 리턴값 |
---|---|
nextElemenst() | Object |
nextTokens() | String |
보통은 nextTokens 메서드로 입력값을 받아서 int타입으로 변환하는 듯 하다.
최종적으로 어떤식으로 사용하는지 보자.
아래와 같이 인풋이 들어온다고 가정하자. 두 정수값을 n, m 에 각각 넣어줄 것이다.
. >> 3 4
추가로 n 줄만큼 정수가 더 입력된다고 가정하자.
. >> 1 2
. >> 1 4
. >> 8 4
import sys.io.*
class Main
{
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.io));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
for(int i = 0; i < n; i++){
st = new StringTokenizer(br.readLine());
int u = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
}
}
}
자바내에서 지원하는 배열, 문자열, 정수 클래스를 사용하는 법 과 각 클래스의 메스드들에 대해 알아보자.
String line = '12345';
int[] arr = new int[5];
for(int i = 0; i < 5; i++){
arr[i] = line.substring(i, i+1);
}
static Queue<Point> q = new LinkedList<Point>();
q.offer(new Point(nx, ny))
Point tmp_q = q.poll();