자바 입출력 처리

CSJ·2022년 5월 13일

JavaStudy

목록 보기
4/4
post-thumbnail

모니터 화면에 출력

작성코드

public class Main3 {

	public static void main(String[] args) {
		
		
		String name = "홍길동";
		int age = 32;
		
		System.out.println("이름 : " + name + ", 나이 : " + age);
		System.out.print("이름 : " + name + ", 나이 : " + age);
		System.out.printf("이름 : %s, 나이 : %d", name, age);
		
		System.out.printf("나이 : |%-5d|\n", age);
		System.out.printf("나이 : |%7.2f|\n", (double)age);
		System.out.printf("나이 : |%-7.2f|", (double)age);
		
	}

}

실행 결과

이름 : 홍길동, 나이 : 32
이름 : 홍길동, 나이 : 32이름 : 홍길동, 나이 : 32나이 : |32   |
나이 : |  32.00|
나이 : |32.00  |

System.out.println 코드는 출력 후 자동으로 줄 바꿈을 해준다.
System.out.print 코드는 출력 후 줄 바꿈을 하지 않는다.
System.out.printf 코드는 출력할 때 텍스트를 여러 가지 형태로 변환해서 출력할 때 사용한다.

ptintf문의 같은 경우 출력패턴은 다음과 같다.

서식문자출력상태사용예시
%d정수%-3d 정수를 3자리로 출력하고 왼쪽 정렬을 한다.
%f실수%5.2f 실수를 5자리로 출력하되, 소수점 2째자리까지 출력한다.
%s문자열%s 문자열 출력
%c문자%c 문자 출력

그리고 줄바꿈을 하지 않는 print문이나 printf문에서 줄바꿈을 하고 싶을때 출려문에다가 \n을 넣어주면 된다.

작성 코드

System.out.printf("나이 : |%-5d|\n", age);
System.out.printf("나이 : |%7.2f|\n", (double)age);
System.out.printf("나이 : |%-7.2f|", (double)age);
System.out.print("안녕하세요\n 저는 홍길동입니다.)

실행 결과

나이 : |32   |
나이 : |  32.00|
나이 : |32.00  |
안녕하세요
저는 홍길동입니다.

특수문자

\n 같은 특수문자에 대해서 알아보자. 특수문자는 백슬래쉬() 문자 다음에 문자를 써서 나타낸다.

Escape Sequence설명
\t탭문자
\b백스페이스
\n개행문자
\r커서를 맨 왼쪽으로 이동
\f새 페이지 처음으로 이동
\'작은따옴표
\"큰따옴표
\ \ 백슬래쉬 문자를 출력할때

키보드로부터 문자 입력

사용자로부터 값을 입력받아 출력시켜주는 방법에 대해 알아보자.

작성 코드

import java.util.Scanner;

public class Main3 {

	public static void main(String[] args) {
		
		

		Scanner inputReader = new Scanner(System.in);
		String strInput = inputReader.nextLine();
		System.out.println(strInput);
	}

}

Scanner를 사용하려면 Scanner를 사용하겠다고 Java에게 알려줘야 하는데 그게 맨 앞에있는 import java.util.Scanner;를 입력해주면 된다.
실행하면 아래와 같다.

실행 결과

안녕하세요
안녕하세요

"안녕하세요" 라는 값을 키보드로 입력하였고 엔터키를 치면 그대로 다음줄에 출력한다.

Scanner 문자열 처리

Scanner에 입력 값을 키보드 입력이 아닌 문자열을 가지고 처리하는 법을 알아보자.

작성 코드

import java.util.Scanner;

public class Main3 {

	public static void main(String[] args) {
		
        
		String strInput = "123 abc def";
		Scanner sc = new Scanner(strInput);
		int a = sc.nextInt();
		String b = sc.next();
		
		boolean tf = sc.hasNext();
		System.out.println("입력값이 있는가?" + tf);
		String c = null;
		if(tf) {
			c =sc.next();
		}
		System.out.println("첫번째:" + a);
		System.out.println("두번째:" + b);
		System.out.println("세번째:" + c);
		
		boolean tf2 = sc.hasNext();
		System.out.println("입력값이 또 있는가?:" + tf2);
	}

}

실행 결과

입력값이 있는가?true
첫번째:123
두번째:abc
세번째:def
입력값이 또 있는가?:false

코드를 보면 next,nextInt등 뭔지 모르는 메소드들이 있는데 이걸 표로 작성해 보았다.

Scanner의 메소드들수행 기능
nextLine()한줄 전체 읽기
next()String 읽기
nextBoolean()true/false 읽기
nextLong()long 정수 읽기
nextInt()int 정수 읽기
nextDouble()double 실수 읽기
nextFloat()float 실수 읽기

Scanner 파일 처리

Scanner 기초를 배운김에 파일을 읽어와서 출력하는 프로그램을 배워보자

작성 코드

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main3 {

	public static void main(String[] args) throws FileNotFoundException{
		
		
		File file = new File("C:\\tmp\\a.txt");
		Scanner sc = new Scanner(file, "UTF-8");
		
		while (sc.hasNext()) {
			System.out.println(sc.next());
		}
		
	}

}

File file = new File("C:\tmp\a.txt"); c드라이브에 tmp라는 폴더를 생성 후 a라는 파일을 만든 후 확장자명까지 new File()안에 입력을 해주면된다. a파일을 메모장으로 아래와 같이 입력해주면된다.

abc def
안녕 홍길동

실행 결과

abc
def
안녕
홍길동

사용자 입력을 처리하는 덧셈 계산기

값을 입력받아 덧셈을 해주는 프로그램을 만들어보자.

작성 코드

import java.util.Scanner;

public class main {

	public static void main(String[] args) {
	
	Scanner sc = new Scanner(System.in);
	
	int A = sc.nextInt();
	int B = sc.nextInt();
	int C = A + B;
	
	System.out.println(C);
	}
}

실행 결과

4 3  //내가 입력한 값
7    // 결과

제대로 모습을 갖춘 사칙연산 계산기

이번엔 입력받을때 사칙연산 부호(+, -, *, /)가 있으면 +면 덧셈
-면 빼기 이런식으로 계산기를 만들어 보자.

앞에서 덧셈을 할때 sc.nextInt()라는 코드를 사용했는데 이번엔 이것이 아닌 sc.next()를 사용할 것이다.
next()는 한 문자를 입력 받는 것이 아니라 공백으로 분리된 한 단어를 입력 받는 명령어라서 문자형 변수인 char가 아니라 문자열인 String 변수로 입력이 된다. 그래서 String을 조금 건드려서 아래와 같이 사용한다.

char c = sc.next().charAt(0);

작성 코드

import java.util.Scanner;

public class main {

	public static void main(String[] args) {
    
	System.out.println("계산할 값을 입력하고 Enter키를 치세요. ex) 3 + 2 :");
	Scanner sc = new Scanner(System.in);
	
	int a = sc.nextInt();
	char c = sc.next().charAt(0);
	int b = sc.nextInt();
	
	int z = 0;
	if (c == '+') {
		z = a + b;
	} else if (c == '-') {
		z = a - b;
	} else if (c == '*') {
		z = a * b;
	} else if (c == '/') {
		z = a / b;
	}
	System.out.println(z);
	
	}
}

사칙연산 부호 부분은 char 문자변수 c 안에 저장 된다. if - else if 문을 사용하여 입력받은 값 중에 +가 있으면 덧셈 -가 있으면 빼기 이런식으로 출력이 된다.

실행 결과

계산할 값을 입력하고 Enter키를 치세요. ex) 3 + 2 :
3 * 2
6

이런식으로 사칙연산 계산기 프로그램 완성

이번 글에선 입출력 Scanner의 사용법과 Scanner를 이용해서 계산기를 만드는 코드를 짜봤다.

profile

0개의 댓글