본문 바로가기

웹 개발/Java

[Web_JAVA] 04

 

● 형변환

1. 자동 형변환

- 정수 + 정수 = 정수

- 정수 + 실수 = 실수

  (ex) 3 + 0.0 = 3.0

- 문자 + 정수 = 정수

 

 

2. 강제 형변환

- (자료형)값

(ex) (double)3 → 3.0

 

 

3. 문자열 형변환

(1) 다른 자료형을 문자열로

- 문자열과 다른 자료형을 연결하면 결과는 항상 문자열이 된다.

 

(2) 문자열을 다른 자료형으로

- 일반 자료형은 일반 자료형끼리 형변환이 되고, 클래스 타입은 클래스 타입끼리 형변환이 된다.

   따라서 문자열을 정수, 실수로 변경하기 위해서는 Integer, Double 등의 클래스에 있는 메소드를 사용해야 한다.

(ex) parseInt(문자열), parseDouble(문자열)

 


 

● 입력

- 커서가 깜빡이고 있는 상태

- 입력하기 전에 출력을 통해 어떤 값을 입력해야 할 지 사용자에게 알려주어야 한다.

 

 

 

● 입력 클래스

- Scanner sc = new Scanner(System.in);

 

 

 

● 입력 메소드

- 콘솔창에서 커서를 깜박여 준다.

 

1. next()

- 사용자가 입력한 문자열 값

- 사용자가 입력한 값 중 공백 또는 줄바꿈 문자(엔터)를 구분점으로 각 문자열을 분리한다.

- 첫 번째 문자열을 첫 번째 next()에 담고, 두 번째 문자열을 두 번째 next()에 담는다.

 

2. nextLine()

- 사용자가 입력한 문자열 값

- 공백 또는 줄바꿈 문자도 값으로 취급하기 때문에 그대로 입력받는다.

 

 

 

 자동 임포트 단축키

- ctrl + shift + o

- 사용하지 않는 import들은 자동으로 삭제해준다.

 

 

 

 

실습(형변환)

1. 자동 형변환

- int & double

public class CastingTest1 {
	public static void main(String[] args) {

		// int 출력
		System.out.println(11/9);
        
		// double 출력
		System.out.println(11/9.0);
			
	}
}
 
결과

 

- char

public class CastingTest2 {
	public static void main(String[] args) {

		char data = 65;

		System.out.println(data);

	} 
}
 
결과

 

 

2. 강제 형변환

public class CastingTest1 {
	public static void main(String[] args) {

		System.out.println(11/(double)9);		// 11 / 9.0
		System.out.println((int)8.43 + 2.59);		// 8 + 2.59
		System.out.println(8.43 + (int)2.59);		// 8.43 + 2
		System.out.println((int)(8.43 + 2.59));		// 8.43 + 2.59 = 11.02 → 11
		System.out.println((int)8.43 + (int)2.59);	// 8 + 2

	}
}
 
결과

 

 

 

3. 강제 형변환 + 자동 형변환

public class CastingTest2 {
	public static void main(String[] args) {

		System.out.println((char)'A' + 5);  // (char)'A' : 65

	}
}
 
결과

 

 

 

실습(문자열 형변환)

1. 따옴표를 이용하여 형변환하기

public class CastingTest3 {
	public static void main(String[] args) {

		System.out.println(1 + "3");
		System.out.println(1 + "" + 9);
			
	}
}
 
결과

 

 

 

2. 두 정수를 더하여 결과가 정수로 나오게 작성하기

public class CastingTest3 {
	public static void main(String[] args) {

		String data1 = "1";
		String data2 = "3";
		String data3 = "3.7";
		
		// Integer.parseInt(data1) : data1을 int 타입으로 변경해준다.
		// Integer.parseInt(data2) : data2을 int 타입으로 변경해준다.
		System.out.println(Integer.parseInt(data1) + Integer.parseInt(data2));
        
		// Double.parseDouble(data3) : data3을 double 타입으로 변경해준다.
		System.out.println(Double.parseDouble(data3));
		
	}
}
 
결과

 

 

 

 

실습(입력(1))

import java.util.Scanner;

public class InputTest1 {
	public static void main(String[] args) {

		/*
		초기화값
		정수 : 0
		실수 : 0.0
		문자 : ' '
		문자열 : "", null
		*/
		
		Scanner sc = new Scanner(System.in);
		String lastName = "";  // String 타입 변수를 선언한 후 초기화
		String firstName = ""; // String 타입 변수를 선언한 후 초기화
		
		System.out.print("이름 : ");
        
		// 사용자에게 값을 한 번에 입력받는다.
		lastName = sc.next();
		firstName = sc.next();
        
		System.out.println(lastName + firstName + "님 안녕하세요");
		
	}
}
 
결과

 

 

 

 

실습(입력(2))

import java.util.Scanner;

public class InputTest2 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String name = "";
		
		System.out.print("이름 : ");
		name = sc.nextLine();
		System.out.print(name + "님 환영합니다.");

	}
}
 
결과

 

 

 

 

실습(입력(3))

1. 두 정수를 입력받은 뒤 곱셈의 결과를 출력한다.(next()만 사용한다)

import java.util.Scanner;

public class InputTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String n1Msg = "첫번째 정수 : ", n2Msg = "두번째 정수 : ", resultMsg = "결과 : ";
		int num1 = 0, num2 = 0, result = 0;
		
		System.out.print(n1Msg);
		num1 = Integer.parseInt(sc.next());  // 입력받은 값을 int 타입으로 변경한다.
        
		System.out.print(n2Msg);
		num2 = Integer.parseInt(sc.next());  // 입력받은 값을 int 타입으로 변경한다.
        
		result = num1 * num2;
		System.out.println(resultMsg + result);
		
	}
}
 
결과

 

 

 

실습(암호화 및 복호화 맛보기)

public class Encryption {
	public static void main(String[] args) {

		String pw = "qweqweqwe";
		String en_pw = "";  //암호화 변수
		String de_pw = "";  //복호화 변수
		final int KEY = 3;
		
		//암호화
		for (int i = 0; i < pw.length(); i++) {
	        en_pw += (char)(pw.charAt(i) * KEY);
	    }
	    
		//복호화
	    for (int i = 0; i < en_pw.length(); i++) {
	        de_pw += (char)(en_pw.charAt(i) / KEY);
	    }
	      
	    System.out.println(en_pw);
	    System.out.println(de_pw);
	      
	}
}
 
결과
 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 06  (0) 2022.02.20
[Web_JAVA] 05  (0) 2022.02.19
[Web_JAVA] 03  (0) 2022.02.17
[Web_JAVA] 02  (0) 2022.02.16
[Web_JAVA] 01  (0) 2022.02.15