반응형
안녕하세요 코이킹입니다.
이번 포스트에선 콘솔에서 유저로부터 데이터를 입력받고, 출력하는 것에 대해서 설명하겠습니다.
1. 값 입력 하기 (Scanner클래스 사용)
Scanner클래스는 유저로부터 데이터를 입력받는 다양한 메서드를 제공하는 클래스입니다.
1) 정수 데이터 입력
// (int)
int inputInt = sc.nextInt();
System.out.println("Inputed int : "+inputInt);
// (long)
long inputLong = sc.nextLong();
System.out.println("Inputed long : "+inputLong);
// (byte)
byte inputByte = sc.nextByte();
System.out.println("Inputed byte : "+inputByte);
// (short)
short inputshort = sc.nextShort();
System.out.println("Inputed short : "+inputshort);
2) 문자 데이터 입력
char inputChar = sc.next().charAt(0);
System.out.println("Inputed char : "+inputChar);
3) 문자열 데이터 입력
// 문자열을 공백기준으로 입력 받는다.
String inputString = sc.next();
System.out.println("Inputed String next : "+inputString);
// 엔터키를 입력하기 전까지의 전체 문자열을 입력받는다
String inputStringNextLine = sc.nextLine();
System.out.println("Inputed String nextLine : "+inputStringNextLine);
4) 부동소수점수 데이터 입력
// (float)
float inputFloat = sc.nextFloat();
System.out.println("Inputed float : "+inputFloat);
// (double)
double inputDouble = sc.nextDouble();
System.out.println("Inputed double : "+inputDouble);
5) 논리 데이터 입력
boolean inputBoolean = sc.nextBoolean();
System.out.println("Inputed boolean : "+inputBoolean);
2. 값 입력하기 (BufferedReader클래스 사용)
BufferedReader클래스를 사용하여 데이터 입력을 받을 경우 Scanner클래스를 사용하여 데이터를 입력받는 것보다,
속도가 더 빠르며 입력받는 데이터가 많을수록 효율이 증가합니다.
※ 입력된 데이터를 버퍼에 보관하여, 사용자가 데이터를 요청할 시 버퍼에서 데이터를 읽어오므로 더 빠르다.
하지만 데이터의 입력은 문자열로 받아야하므로 StringTokenizer나 String의 split메서드를 사용하여 입력받는 값을 자르는 처리를 해주어야 합니다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputedStringFromBR;
StringTokenizer st = null;
String [] strArray = null;
try {
inputedStringFromBR = br.readLine();
st = new StringTokenizer(inputedStringFromBR, " "); // 공백을 구분자로 문자열 자르기
strArray = new String[st.countTokens()];
for (int i=0; i<strArray.length; i++) {
strArray[i] = st.nextToken();
}
} catch (IOException e) {
e.printStackTrace();
}
for (String str : strArray) {
System.out.println("BufferedReader inputed : "+str);
}
3. 값 출력하기
1) 개행포함 출력 (System.out.println();)
System.out.println("Hello World 1");
System.out.println("Hello World 2");
// 결과
// Hello World 1
// Hello World 2
2) 개행없이 출력 (System.out.print();)
System.out.print("Hello World 1");
System.out.print("Hello World 2");
// 결과
// Hello World 1Hello World 2
3) 서식지정 출력 (System.out.printf();, String.format();)
// System.out.printf("서식", 값1, 값2...);
// 1) %d : 정수
System.out.printf("number 1 : %d %n", 100);
System.out.printf("number 1 : %d , number 2 : %d %n", 100, 1500);
// 2) %f : 실수
System.out.printf("double 1 : %f %n", 0.15);
System.out.printf("double 2 : %.3f %n", 2.123456); // 소수점 3자리까지 출력
// 3) %c : 문자
System.out.printf("char : %c %n", 'a');
// 4) %s : 문자열
System.out.printf("String : %s-----%s %n", "Hello", "World");
// ※ String.format("서식", 값1, 값2...);
System.out.println(String.format("String : %s-----%s %n", "Hello", "World"));
※ 예제코드
https://github.com/leeyoungseung/algorithmBasic/blob/master/algorithm/src/basic/B_09_IO.java
※ qiita에 투고한 URL
https://qiita.com/Koiking-L/items/68c5fa6adf8a4854c53f
반응형
'프로그래밍 > Java-문법정리' 카테고리의 다른 글
【Java문법】리스트(List) (0) | 2022.01.10 |
---|---|
【Java문법】래퍼클래스 (0) | 2022.01.10 |
【Java문법】메서드 (0) | 2022.01.09 |
【Java문법】배열 (0) | 2022.01.09 |
【Java문법】반복문 (0) | 2022.01.09 |
댓글