1. 문자 1개 받기
- 이 코드를 실행하면 문자 여러개를 치고 엔터를 쳐도 System.in 은 한 글자만 받기 때문에 첫 번째 문자 1개만 char ch 에 들어간다.
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
InputStreamReader input = new InputStreamReader(System.in);
System.out.print("입력: ");
char ch = (char) input.read();
System.out.print(ch);
}
}
2. 문자열 1줄 받기
- 엔터키 입력하면 그 전까지 입력한 값이 String str 에 들어간다.
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
InputStreamReader input_char = new InputStreamReader(System.in);
BufferedReader input_string = new BufferedReader(input_char);
System.out.print("입력: ");
String str = input_string.readLine(); // 문자열 입력받기
System.out.print(str);
}
}
3. 문자열을 int로 변환하여 변수에 넣기
- 정수인 문자열만 가능하다. 알파벳 등 정수가 아닌 문자는 불가능하다.
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
InputStreamReader input_char = new InputStreamReader(System.in);
BufferedReader input_string = new BufferedReader(input_char);
System.out.print("입력: ");
String str = input_string.readLine(); // 문자열 입력받기
System.out.println("문자: " + str);
int intstr = Integer.parseInt(str);
System.out.println("숫자: " + (intstr + 1));
}
}
4. 문자열을 받아서 한 글자씩 분리해 배열에 넣기
- split은 공백까지 한 글자로 생각한다.
* 글자를 구분하는 구분자에 따라 값의 결과가 달라짐을 아래 예시를 통해 알아보자!
1) 구분자를 "&"로 했을 때
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
//문자열 입력받기
InputStreamReader input_char = new InputStreamReader(System.in);
BufferedReader input_string = new BufferedReader(input_char);
System.out.print("입력: ");
String str = input_string.readLine(); // 입력받는 부분
//문자열의 각 문자를 쪼개서 배열에 넣기
String[] array = str.split("&");
System.out.print("출력: ");
for(int i = 0; i < array.length; i++)
System.out.print(array[i] + "/ ");
}
}
입력: 1&2& & & &3&4
출력: 1/ 2/ / / / 3/ 4/
- 구분자 & 에 따라 문자열이 구분되었다. 출력을 보면 공백 또한 하나의 문자로 취급되어 배열의 원소로 입력된 것을 볼 수 있다.( 빨간 부분)
2) 구분자를 " "로 했을 때
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
//문자열 입력받기
InputStreamReader input_char = new InputStreamReader(System.in);
BufferedReader input_string = new BufferedReader(input_char);
System.out.print("입력: ");
String str = input_string.readLine(); // 입력받는 부분
//문자열의 각 문자를 쪼개서 배열에 넣기
String[] array = str.split(" ");
System.out.print("출력: ");
for(int i = 0; i < array.length; i++)
System.out.print(array[i] + "/ ");
}
}
package datastruct_1; import java.io.*; public class Binary_Search { public static void main(String[] args) throws IOException { //문자열 입력받기 InputStreamReader input_char = new InputStreamReader(System.in); BufferedReader input_string = new BufferedReader(input_char); System.out.print("입력: "); String str = input_string.readLine(); // 입력받는 부분 //문자열의 각 문자를 쪼개서 배열에 넣기 String[] array = str.split(" "); System.out.print("출력: "); for(int i = 0; i < array.length; i++) System.out.print(array[i] + "/ "); } }
<1번>
입력: 1 2 3 4
출력: 1/ 2/ 3/ 4/
<2번>
입력: 1 2 3 4
출력: 1/ 2/ 3/ / 4/
- 구분자를 공백(" ") 으로 할 경우 이는 구분자이기에 문자로 취급하지 않는다. 그래서 <1번>의 결과를 보면배열의 원소에는 공백이 있지 않다.
하지만 <2번>을 보면 공백을 여러번 입력 할 경우 구분자 다음에 나오는 공백은 문자로 취급한다. 그래서 3과 4 사이에 공백이 출력된 것이다.
3) 구분자를 ""로 했을 때
package datastruct_1;
import java.io.*;
public class Binary_Search {
public static void main(String[] args) throws IOException {
//문자열 입력받기
InputStreamReader input_char = new InputStreamReader(System.in);
BufferedReader input_string = new BufferedReader(input_char);
System.out.print("입력: ");
String str = input_string.readLine(); // 입력받는 부분
//문자열의 각 문자를 쪼개서 배열에 넣기
String[] array = str.split("");
System.out.print("출력: ");
for(int i = 0; i < array.length; i++)
System.out.print(array[i] + "/ ");
}
}
입력: 1234 567
출력: 1/ 2/ 3/ 4/ / 5/ 6/ 7/
- 구분자가 없기에 모든 문자가 배열의 원소가 되었다.