fomart 출력

인철·2023년 10월 13일
0

Java

목록 보기
13/52

fomart 출력

문자열의 형식을 설정하는 method
System.out.printf() 일 때만 출력 가능


D%d //정수
System.out.printf("%d", 3); //3
System.out.printf(" %d%n", 3); //3
System.out.printf("연필 %d개", 3); //연필 3개

------------------------------------------------

%f //실수
System.out.printf("%f\n", 3.14); //3.140000
System.out.printf("%f\n", 3.14159265); //3.141593
System.out.printf("%.2f\n", 3.14159265); //3.14
System.out.printf("%.8f\n", 3.14159265); //3.14159265
----> %fn //기본으로 소수점 6자리까지 나타난다
-----> '.원하는 소수점의 개수'를 입력을 안할시 기본으로 소수점 6자리까지 표기
ex) %.8fn > 소수점 8자리까지 표기

------------------------------------------------

%c //문자열
System.out.printf("%c. %C", 65, 65);
-----> 대문자 소문자 가능, 동일하게 출력

------------------------------------------------

%s //문자열 String
System.out.printf("%s", "안녕하세요");
//문장을 출력
System.out.printf("%s", "hello"); //hello
System.out.printf("%S", "hello"); //HELLO
----> %s를 사용하면 출력할 내영이 그대로 출력이 되지만
%S를 사용하면 대문자로 출력이 된다ㅣ


System.out.printf("\"%10s\"\n", "Hello, World"); //Hello World
	System.out.printf("\"%15s\"\n", "Hello, World"); //     Hello World
System.out.printf("\"%-15s\"\n", "Hello, World");  //Hello World
------> 
%와 s사이에 숫자를 넣으면 그 크기만큼 정렬이 된다.
양의 정수 값이 들어가면 해당 숫자만큼 의 공간에 우측 정렬이 되고
음의 정수 값이 들어가면 좌측 정렬이 된다

------------------------------------------------

%b //Boolean 논리형 true flase
System.out.printf("%b\n", true); //
System.out.printf("%B\n", true);
System.out.printf("%b\n", false);
System.out.printf("%B\n", false);
System.out.printf("%b\n", null);
System.out.printf("%B\n", null);

------------------------------------------------

Trim 문자열의 왼쪽 오른쪽 공백을 지워주는 함수
--->
String str = " 문자열에 공백이 있습니다. ";		
System.out.println(str);

str = str.trim();
System.out.println(str);
// 문자열의 공백이 있습니다
//문자열의 공백이 있습니다
* .trim(); 써주면 딘다
* replace(); ---> 가운데 공백 제거

------------------------------------------------

Concat 문자열을 합치는 함수
------------>
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 => 청솔초등학교
    //                   0 1 2 3 4 5

    fullSchoolName = fullSchoolName.substring(0, 2);
    System.out.println("== 정답 v5(substring) ==");
    System.out.printf("학교 : %s초등학교\n", fullSchoolName);
  }
}

* charAt : 문자열의 n번째의 문자를 불러온다
* substring(n,m) : 문자열의 n번째부터 m번째까지 문자열을 불러온다 

------------------------------------------------

split : 특정문자로 문자열 분리하는 함수
relace : 자신이 바꾸고 싶은 문자로 문자열을 치환하는 함수
replace(기존문자,바꿀문자);

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);
  }
}

-------------------------------------------------------------

Scanner : 콘솔창에 입력하여 나타내주는 함수
Scanner를 사용하기 위해서는 
1) import java.util.Scanner;를 맨위에 적어야한다
2) Scanner 객체 생성하기 Scanner sc = Scanner(System.in); ------> System.in은 사용자로부터 입력을 받기 위한 스트림이다 
3. Scanner 입력 메소드 쓰기
입력 메소드 종류
in.nextByte()		// byte 형 입력 및 리턴
in.nextShort()		// short 형 입력 및 리턴
in.nextInt()		// int 형 입력 및 리턴
in.nextLong()		// long 형 입력 및 리턴
 
in.nextFloat()		// float 형 입력 및 리턴
in.nextDouble()		// double 형 입력 및 리턴
 
in.nextBoolean()	// boolean 형 입력 및 리턴
 
in.next()			// String 형 입력 및 리턴	(공백을 기준으로 한 단어를 읽음)
in.nextLine()		// String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.printf("당신의 나이를 입력해주세요 : ");
    int age = s.nextInt();

    System.out.printf("당신의 키를 입력해주세요 : ");
    float height = s.nextFloat();

    System.out.printf("입력된 나이 : %d살\n", age);
    System.out.printf("입력된 키 : %.1fcm\n", height);
  }
}

--------------------------------------------

paresInt : Srring타입을 int타입으로 변환해주는 함수 
parse종류 :
Byte.parseByte();
//Byre로 치환
Short.parseShort();
//short로 치환
Integer.parseInt();
//int로 치환
Long.parseLong();
//long로 치환
Float.parseFloat();
//float로 치환
Double.parseDouble();
//double로 치환

package main;

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    System.out.printf("나이 : ");
    String line = scanner.nextLine();
    line = line.trim().replace("살", "1");

    int age = Integer.parseInt(line);
    System.out.printf("나이 : %d살\n", age);
  }
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글