ASCII코드중에서 문자 0은 48, 9는 57 ASCII코드중에서 문자 A는 65, Z는 90 ASCII코드중에서 문자 a는 97, z는 122
char과 int 자료형은 서로 호환이 가능한 범위를 가진다.
char ch3 = 65; //성공. 'A'가 입력됨.
System.out.printf("%d %n", 65); // 65 System.out.printf("%c %n", 65); // A
String str = "TEST"; System.out.printf("%c %n", str.charAt(0)); //문자열이 저장된 변수명.charAt(문자열위치값) 즉, 여기서는 T 리턴 System.out.printf("%c %n", str.charAt(1)); System.out.printf("%c %n", str.charAt(2)); System.out.printf("%c %n", str.charAt(3));
public class Test20 {
public static void main(String [] args) {
//입력
//처리
//출력
System.out.printf("%c %n", 65);
System.out.printf("%c %n", 66);
System.out.printf("%c %n", 67);
// A ~ Z 까지를 출력
for (int i=65; i<=90; i++) {
System.out.printf("%c", i);
}
System.out.println("");
// a ~ z 까지를 출력
for (int i=97; i<=122; i++) {
System.out.printf("%c", i);
}
System.out.println("");
}
}
//결과
A
B
C
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
문제) 대문자로 구성된 4글자짜리 문자열을 입력받고 나서, 소문자로 변경한 다음 출력. 실행 예) 문자열 입력(4자, 대문자)?TEST 입력된 문자열 : TEST 소문자로 변환 : test
import java.util.Scanner;
public class Test21 {
public static void main (String [] args ) {
//입력
System.out.print("문자열 입력(4자, 대문자)?");
Scanner sc = new Scanner(System.in);
String eng = sc.next();
//처리
char en1 = eng.charAt(0);
char en2 = eng.charAt(1);
char en3 = eng.charAt(2);
char en4 = eng.charAt(3);
int inten1 = en1 + 32;
int inten2 = en2 + 32;
int inten3 = en3 + 32;
int inten4 = en4 + 32;
//출력
System.out.printf("입력된 문자열 : %s %n ", eng);
System.out.printf("소문자로 변환 : %c%c%c%c %n", inten1, inten2, inten3, inten4);
}
}
//결과
문자열 입력(4자, 대문자)?TEST
입력된 문자열 : TEST
소문자로 변환 : test
자료의 형 변환
1. 자료의 형이 일치하지 않는 경우 원하는 자료형으로 변환할 수 있어야 한다.
2. 묵시적 형변환, 명시적 형 변환 묵시적 형 변환 -> 자동으로 변환시켜 주는 것. 데이터가 원래의 값을 유지하는 것이 가능. 작은 데이터를 큰 자료형에 넣는 경우에 주로 발생. 명시적 형 변환 -> 특정 명령 수행을 통해서 강제적으로 변환을 시키는 것. 데이터가 원래의 값을 유지하지 못하는 경우도 발생.
public class Test22 {
public static void main (String[]args) {
short a = 10;
System.out.printf("%d %n", a);
int b = a; //->묵시적 형 변환
System.out.printf("%d %n", b);
//short c = b;
//System.out.printf("%d %n", c);
short c = (short)b; //->명시적 형 변환
System.out.printf("%d %n", c);
int d = Short.MAX_VALUE + 1; //32767 +1
short e = (short)d; // -> 명시적 형 변환
System.out.printf("%d %n", e); //-32768
}
}
//결과
10
10
10
-32768
형 변환의 대표적인 예
문자열형 -> 숫자형, 숫자형 -> 문자열형
int 변수 = Integer.parseInt(문자열형); double 변수 = Double.parseDouble(문자열형);
String 변수 = String.valueof(정수형); String 변수 = String.valueof(실수형);
String 변수 = Integer.toString(정수형); String 변수 = Integer.toBinaryString(정수형); String 변수 = Integer.toHexString(정수형);
String 변수 = String.format("%d", 정수형); String 변수 = String.format("%f", 실수형);
char 변수 = 문자열형변수명.charAt(인덱스);
if문
1. 주어진 조건에 따라 분기 방향을 정하기 위하여 사용하는 제어문 2. 기본형식
//조건이 만족되는 경우(true인 경우)만 실행문 실행
if (조건) {
// 실행문;
}
//조건이 만족되는 경우(true인 경우)는 실행문1 실행
//조건이 만족되는 않는 경우(true인 경우)는 실행문2 실행
if (조건) {
// 실행문1;
} else {
// 실행문2;
}
사용 가능 방법
if (조건) {
//실행문1;
} else if (조건2) {
//실행문2;
} else {
//실행문3;
}
-> 다른방법으로 표기하면
if (조건) {
//실행문1;
} else {
if (조건2) {
//실행문2;
} else {
//실행문3;
}
//if, else 구문은 한번만 표기, else if (조건)은 추가 가능.
if (조건) {
//실행문1;
} else if (조건2) {
//실행문2;
} else if (조건3) {
//실행문3;
} else {
//실행문4;
}
-> 위와 같은 상황은 다른 표현으로 사용하기도 합니다. 다만, else 즉 실행문4가 없음.
if (조건1) {
// 실행문1;
}
if (조건2) {
// 실행문2;
}
if (조건3) {
// 실행문3;
}
문제) 세 개의 숫자 중에서 가장 큰 숫자 구하기. 단, if문 사용. 실행 예) 숫자1?XX 숫자2?YY 숫자3?ZZ 입력 받은 숫자 : XX, YY, ZZ 가장 큰 숫자 : ZZ
import java.util.*;
public class Test23 {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in); // Scanner 변수명 = new Scanner(System.in);