거북이처럼 천천히

Java - String Formatting 본문

Back-end/Java 개념

Java - String Formatting

유로 청년 2022. 5. 30. 23:25

1. %d (Format code)와 % 기호를 같이 사용할 경우

ex) "Loading is 50%" String 을 출력하고 싶다.

System.out.println(String.format("Loading is %d%", 50));
  • 위 예문처럼 작성하였지만, 예상과 달리 오류(UnknownFormatConversionException)가 발생하였다.
  • 그 이유는 문자열 포맷 코드인 %d와 기호 %가 같은 문자열에 존재할 경우, 기호 %를 표시하기 위해서는 %%으로 써야한다.
  • 하지만, 문자열 포맷 코드가 문자열에 존재하지 않는다면 %는 홀로 작성해도 상관이 없다.
System.out.println(String.format("Loading is %d%%", 50));      // Loading is 50%  출력

 

2.  문자열 포맷 코드와 옵션

문자열 포맷 코드(String Format code)를 숫자와 함께 사용하면 옵션을 부여 더 유용하게 사용할 수 있다.

 

2.1. 문자열의 정렬과 공백

System.out.println(String.format("%10s", "Hello!"));      // "    Hello!" 출력
System.out.println(String.format("%-10s", "Hello!"));    //  "Hello!    " 출력
  • %10s는 길이가 10개인 문자열 공간에서 대입할 값을 오른쪽에 정렬하고, 나머지를 공백으로 채우라는 의미이다.
  • %-10s는 길이가 10개인 문자열 공간에서 대입할 값을 왼쪽에 정렬하고, 나머지를 공백으로 채우라는 의미이다.

 

2.2. 소수점 표현 

System.out.println(String.format("%.4f", 3.1234567));    // 3.1235 출력
System.out.println(String.format("%10.4f", 3.1234567));     // "    3.1235" 출력
  • %.4f 는 실수 3.1234567를 소수점 4번째까지만 표현하라는 뜻으로, 소수점 5번째에서 반올림하게 된다.
  • %10.4f 는 실수 3.1234567를 소수점 5번째에서 반올림하고, 전체 길이가 10개인 문자열 공간에서 오른쪽으로 정렬하라는 의미이다.

 

3.  System.out.printf

String.format 메소드은 formatted String(포매팅된 문자열)을 반환하기 때문에, String.format() 메소드와 System.out.println() 메소드를 이용하여 formatted String(포메이팅된 문자열)을 출력할 수 있다.

System.out.println(String.format("Today is %s . I ate %d apples", "sunday", 13));  

System.out.printf() 메소드를 이용하면 String.format() 메소드 없이도 동일한 형식으로 포매팅된 문자열을 얻을 수 있다.

System.out.printf("Today is %s . I ate %d apples", "sunday", 13);

 

String.format 메소드와 System.out.printlf() 메소드의 차이는 전자는 formatted String(포메이팅된 문자열)을 반환하고, 후자는 formatted String(포메이팅된 문자열)을 출력한다.

'Back-end > Java 개념' 카테고리의 다른 글

Java - List  (0) 2022.06.02
Java - 배열  (0) 2022.06.01
Java - 문자열  (0) 2022.05.30
Java - 불리언, 문자형  (0) 2022.05.29
Java - 숫자 자료형  (0) 2022.05.29