● 형변환
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 |