본문 바로가기
IT관련/JAVA_정리 노트

템플릿 기초

by XoX 2020. 4. 14.
728x90

■ 복습
*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("당신의 이름을 입력해주세요.")
로 넘어간다. 

728x90
반응형

'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

댓글