■ 복습
*x의 해석
class Main {
public static void main(String[] args) {
int x =5;
x=x;
System.out.println("x"+x);
}
}
x=x;의 첫번째 x는 변수이고, 두번째 x는 5이다.
*""안의 사칙연산
class Main {
public static void main(String[] args) {
int i =1;
System.out.println("8*i");
}
}
8이 아니고 "8*i" 문장이 나옴.
■ 템플릿 =양식
*치환하기 기초
class Main {
public static void main(String[] args) {
int dan = 8;
int i = 3;
System.out.println(dan+"*"+i+"="+dan*i);
System.out.printf("%d*%d=%d",dan,i,dan*i);
}
}
printf의 f는 format을 의미한다.
위를 실행하면
8*3=24
8*3=24
라고 출력된다.
■ 템플릿 기초 룰
*자리수
class Main {
public static void main(String[] args) {
int dan = 8;
int i = 3;
System.out.printf("%d%n",3);
System.out.printf("%5d%n",3);
System.out.printf("%3d%n",3);
System.out.printf("%1d%n",3);
System.out.printf("%05d%n",3);
}
}
pritf에서는 \n이 아니고 %n이라고 해도 줄바꿈이 된다.
위를 실행하면
3
3
3
3
00003
라고 출력된다.
%과 %n사이에 숫자+d를 써줘서 총 몇자리수로 구성할지 표기하는 것이고,
설정한 자리수보다 출력되는 숫자의 자리수가 작을때는 설정한 자리수는 빈칸으로 나온다.
%과 %n사이에 0+d를 써주면 0의 갯수만큼 자리수가 생성되고 빈칸은 0으로 출력된다.
*실수표기
double x =5.5;
double인 경우는 5.5가 담긴다. 그러나
float y=5.5;
float인 경우 5.5가 담기지 않는다. 그래서 5.5뒤에 f를 붙여서
float y=5.5f;
라고 표기해 준다.
*020.4f 를 순서대로 해석하자면?
맨 앞의 0은 앞에 0을 깐다는 뜻,
중간의 20은 20칸을 쓴다는 뜻,
.4는 소수점 4자리라는 뜻,
f는 실수라는 뜻
■ 템플릿 응용1
*
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.printf("나이:");
int age=scanner.nextInt();
System.out.printf("나이:%d살\n",age);
}
}
실행하면
나이:
하고 입력란하라고 떠서 20이라고 입력하면
나이:20살
이라고 나오게 된다. 그런데 만약 숫자 20만 입력하는 게 아니라, 이용자가 20살이라고 입력하게 되면,
첫번째 int에 넣어놨기 때문에 오류가 뜬다.
두번째 첫번째문제를 해결하더라도 입력을 20이 아니라 20살로하게 되면 '나이:20살살' 이라고 출력된다.
첫번째 문제를 고치기 위해서는
int age=scanner.nextInt();
System.out.printf("나이:%d살\n",age);
위의 문장을
String line=scanner.nextLine();
System.out.printf("나이:%s살\n",line);
그리고 두번째 문제를 고치기 위해서는
System.out.printf("나이:");
다음에 오는 문장을
String line=scanner.nextLine();
line=line.trim().replace("살","");
int age = Integer.parseInt(line);
System.out.printf("나이:%d살\n",age);
라고 바꿔주면 된다.
class Main {
public static void main(String[] args) {
String name=" 홍 길동\t\n";
name=name.trim();
System.out.printf("이름은 %s 입니다.\n", name);
}
name=name.trim();
양옆을 깍아내기위새 trim을 써줌.
class Main {
public static void main(String[] args) {
String schoolName = "청솔";
String fullSchoolName = schoolName.concat("초등학교");
System.out.println("== 정답 v1(concat) ==");
System.out.printf("학교 : %s\n", fullSchoolName);
schoolName = "청솔";
fullSchoolName = schoolName + "초등학교";
System.out.println("== 정답 v2(+) ==");
System.out.printf("학교 : %s\n", fullSchoolName);
char c1 = fullSchoolName.charAt(0);
char c2 = fullSchoolName.charAt(1);
System.out.println("== 정답 v3(charAt) ==");
System.out.printf("학교 : %c%c초등학교\n", c1, c2);
String fullSchoolName2 = "" + fullSchoolName.charAt(0) + fullSchoolName.charAt(1);
System.out.println("== 정답 v4(charAt + charAt) ==");
System.out.printf("학교 : %s초등학교\n", fullSchoolName2);
fullSchoolName = fullSchoolName.substring(0, 2);
System.out.println("== 정답 v5(substring) ==");
System.out.printf("학교 : %s초등학교\n", fullSchoolName);
}
}
2020 04 04로 표기해주려면,
%04d %02d %02
class Main {
public static void main(String[] args) {
String str = "\t\t2020.4.4";
System.out.println("== 정답 v1 ==");
System.out.printf("날짜 : %s\n", str.trim().replace(".", "-"));
System.out.println("== 정답 v2 ==");
String str2 = str.trim();
str2 = str2.replace(".", "-");
System.out.printf("날짜 : %s\n", str2);
System.out.println("== 정답 v3 ==");
System.out.printf("날짜 : %s-%02d-%02d\n", "2020", 4, 4);
System.out.println("== 정답 v4 ==");
String[] strs = str.trim().split("\\.");
int year = Integer.parseInt(strs[0]);
int month = Integer.parseInt(strs[1]);
int day = Integer.parseInt(strs[2]);
System.out.printf("날짜 : %04d-%02d-%02d\n", year, month, day);
}
}
나누고
문장을 정수로 바꾸고
출력
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.printf("당신의 나이를 입력해주세요: ");
int age=scanner.nextInt();
System.out.printf("당신의 이름을 입력해주세요.")
}
}
가 실행되면 int age=scanner.nextInt(); 에서 멈추고
키보드를 통해 정수가 입력될때까지 멈춰있다가 정수가 입력되면
다음줄 System.out.printf("당신의 이름을 입력해주세요.")
로 넘어간다.
'IT관련 > JAVA_정리 노트' 카테고리의 다른 글
객체 기초 (0) | 2020.04.16 |
---|---|
형변환 기초 (0) | 2020.04.15 |
print println pritf 차이점 (0) | 2020.04.15 |
조건문 기초 (0) | 2020.04.14 |
자바를 배울 때 첫번째로 알아야 하는 것 (0) | 2020.04.09 |
댓글