- String.format을 이용한 출력 양식 정리
- service : class StudentServiceImpl
package service;
public class StudentServiceImpl implements StudentService {
// 내용 생략
public void list() { // 조회 기능 구현
System.out.println("조회 기능 구현");
// System.out.printf(" 학번 \t 이름 \t 국어 \t 영어 \t 수학 \t 총점 \t 평균 %n");
System.out.println(String.format("%s%s%s%s%s%s%s"
, Test.convert("학번", 8)
, Test.convert("이름", 10)
, Test.convert("국어", 5)
, Test.convert("영어", 5)
, Test.convert("수학", 5)
, Test.convert("총점", 5)
, Test.convert("평균", 9)));
System.out.printf("===================================================%n");
for (Student s : students) {
System.out.print(Test.convert(s.getNo(), 8));
System.out.print(Test.convert(s.getName(), 10));
System.out.print(Test.convert(s.getKor()+"", 5));
System.out.print(Test.convert(s.getEng()+"", 5));
System.out.print(Test.convert(s.getMat()+"", 5));
System.out.print(Test.convert(s.sum()+"", 5));
System.out.print(Test.convert(s.avg()+"", 9));
System.out.println();
}
}
// 내용 생략
// 전각문자 개수를 세주는 메서드
private static int getKorCnt(String kor) {
int cnt = 0;
for (int i = 0 ; i < kor.length() ; i++) {
if (kor.charAt(i) >= '가' && kor.charAt(i) <= '힣') {
cnt++;
}
} return cnt;
}
// 전각문자의 개수만큼 문자열 길이를 빼주는 메서드
public static String convert(String word, int size) {
String formatter = String.format("%%%ds", size -getKorCnt(word));
return String.format(formatter, word);
}
}