이 기사는 다음과 같이 Java String Formatting-String.format ()의 사용을 소개합니다.
일반 유형의 형식
문자열 클래스의 형식 () 메소드는 형식화 된 문자열을 생성하고 여러 문자열 객체를 연결하는 데 사용됩니다. C 언어에 익숙한 학생들은 C 언어의 Sprintf () 방법을 기억해야하며, 둘 사이에는 유사점이 있습니다. Format () 메소드에는 두 개의 과부하 양식이 있습니다.
형식 (문자열 형식, 객체 ... args) 새 문자열은 로컬 로케일을 사용하여 문자열 형식과 매개 변수를 만들어 형식의 새 문자열을 생성합니다.
형식 (Locale Locale, String Format, Object ... Args)은 지정된 로케일을 사용하여 문자열 형식 및 매개 변수를 만들어 형식으로 된 문자열을 생성합니다.
그림과 같이 서로 다른 데이터 유형을 문자열로 변환 할 수 있도록 다른 변환기를 표시하십시오.
변환기 | 설명 | 예 |
%에스 | 문자열 유형 | "Mingrisoft" |
%기음 | 문자 유형 | '중' |
%비 | 부울 유형 | 진실 |
%디 | 정수 유형 (소수점) | 99 |
%엑스 | 정수 유형 (16 진수) | FF |
%영형 | 정수 유형 (10 월) | 77 |
%에프 | 부동 소수점 유형 | 99.99 |
%에이 | 16 진수 부동물 포인트 유형 | ff.35ae |
%이자형 | 인덱스 유형 | 9.38E+5 |
%g | 일반 부동 소수점 유형 (F 및 E 유형의 짧은) | |
%시간 | 해시 코드 | |
%% | 백분율 유형 | 비율 |
%N | 라인이 끊어집니다 | |
%tx | 날짜 및 시간 유형 (X는 다른 날짜 및 시간 변환 문자를 나타냅니다. |
테스트 사례
public static void main (String [] args) {String str = null; str = stringformat ( "hi,%s", "wang li"); SystemOutPrintln (str); str = stringformat ( "hi,%s :%s%s", "Wang Nan", "Wang Li", "Wang Zhang"); SystemOutPrintln (str); SystemOutPrintf ( "대문자 a는 : %c %n", 'a'); SystemOutPrintf ( "3> 7 결과는 다음과 같습니다. %B %N", 3> 7); SystemOutPrintf ( "100의 절반은 : %d %n", 100/2); SystemOutPrintf ( "100의 16 진수는 : %x %n", 100); SystemOutPrintf ( "100의 앵글 숫자는 : %o %n", 100); SystemOutPrintf ( "50 Yuan Book은 5 할인 : 50*85); 위의 가격은 : %a %n ", 50*85); SystemOutPrintf ("위의 가격의 지수는 : %e %n ", 50*85); SystemOutPrintf ("위의 가격의 더 짧은 길이와 부동 소수점 수치 결과는 다음과 같습니다. 문자 A IS : %H %N ", 'A');}출력 결과
안녕하세요, Wang Li Hi, Wang Nan : Wang Li Wang Zhang의 편지 A는 대문자입니다. 3> 7 결과는 다음과 같습니다. 결과는 다음과 같습니다. 100의 허위 절반은 : 50 100 IS : 64 100 is 80 144 50 Yuan Book 5 할인 IS : 500000 위의 16000 년 숫자는 다음과 같습니다. 위의 할인은 85%입니다. 문자 A의 해시 코드는 다음과 같습니다.
변환 기호와 쌍을 이루는 로고는 그림에 나와 있습니다.
| 심벌 마크 | 설명 | 예 | 결과 |
| + | 양 또는 음수에 대한 기호를 추가하십시오 | ( "%+d", 15) | +15 |
| - | 왼쪽 정렬 | ( "%-5d", 15) | | 15 | |
| 0 | 숫자 전에 0을 추가하십시오 | ( "%04d", 99) | 0099 |
| 공간 | 정수 전에 지정된 수의 공간을 추가하십시오 | ( "% 4d", 99) | | 99 | |
| ,,, | ","그룹 번호 | ( "%, f", 9999.99) | 9,999.990000 |
| ( | 괄호를 사용하여 음수를 포함하십시오 | ( "%(F", -99.99) | (99.990000) |
| 틀 | 부동 소수점 인 경우 소수점이 포함되어 있습니다. 16 진수 또는 ength 인 경우 0x 또는 0을 추가합니다. | ( "%#x", 99) | ( "%#O", 99) |
| < | 이전 변환기에서 설명한 매개 변수를 형식화합니다 | ( " %F 및 %<3.2f", 99.45) | 99.450000 및 99.45 |
| $ | 형식화 된 매개 변수 인덱스 | ( "%1 $ d,%2 $ s", 99, "ABC") | 99, ABC |
테스트 사례
public static void main (String [] args) {String str = null; // $ 사용 str = stringformat ( "형식 매개 변수 사용 $ : %1 $ d, %2 $ s", 99, "ABC"); SystemOutPrintln (str); //+SystemOutPrintf 사용 ( "양 및 음수를 나타내는 기호 : %+d 및 %d %n", 99, -99); // 완료 ouse SystemOutPrintf ( "가장 멋진 숫자는 : %03d %n", 7); // SystemOutPrintf 사용 ( "탭 키의 효과는 : %8d %n", 7); // SystemOutPrintf 사용 ( "정수 그룹의 효과는 다음과 같습니다. %, d %n", 9989997); // 공간 및 소수점 번호 SystemEmoutPrintf ( "책의 가격은 다음과 같습니다. % 5f yuan % n", 8); }출력 결과
형식 매개 변수의 사용 $ : 99, 양수 및 음수를 표시하는 ABC 기호 : +99 및 -99 가장 멋진 숫자는 다음과 같습니다. 007 탭 키의 효과는 다음과 같습니다. 7 정수 그룹의 효과는 9,989,997 책의 가격은 다음과 같습니다.
날짜 및 이벤트 문자열 형식
프로그램 인터페이스에 표시하는 데 시간과 날짜가 종종 필요하지만 디스플레이 형식은 종종 불만족 스럽습니다. 이상적인 날짜 및 시간 형식을 얻기 위해 다양한 알고리즘을 거쳐 많은 코드가 필요합니다. 문자열 형식에는 자세한 내용이없는 %TX 변환기가 있으며 날짜와 시간을 형식화하는 데 특별히 사용됩니다. %TX 변환기의 x는 날짜 및 시간 형식을 처리하는 추가 변환기를 나타내며 해당 조합은 날짜와 시간을 여러 형식으로 형식화 할 수 있습니다.
그림과 같이 날짜 및 시간 조합에 대한 일반적인 형식.
| 변환기 | 설명 | 예 |
| 기음 | 모든 날짜 및 시간 정보를 포함합니다 | 10 월 27 일 토요일 14:21:20 CST 2007 |
| 에프 | "Year-Month-Day"형식 | 2007-10-27 |
| 디 | "월/일/년"형식 | 10/27/07 |
| 아르 자형 | "HH : MM : SS PM"형식 (12 시간 시스템) | 02:25:51 PM |
| 티 | "HH : MM : SS"형식 (24 시간 시스템) | 14:28:16 |
| 아르 자형 | "HH : MM"형식 (24 시간 시스템) | 14:28 |
테스트 사례
public static void main (String [] args) {날짜 date = new Date (); // c는 SystemUtPrintf를 사용합니다 ( "모든 날짜 및 시간 정보 : %tc %n", 날짜); // f는 SystemUtPrintf를 사용합니다 ( "연도-월-일 형식 : %tf %n", 날짜); // D를 사용하여 SystemUtPrintf ( "월/일/연도 형식 : %td %n", 날짜); // r은 SystemUtPrintf를 사용합니다 ( "HH : MM : SS PM 형식 (12 시간 시스템) : %TT %N", DATE); // t는 systemUtprintf를 사용합니다 ( "hh : mm : ss 형식 (24 시간 시스템) : %tt %n", 날짜); // r은 SystemUtPrintf를 사용합니다 ( "HH : MM 형식 (24 시간 형식) : %TR", DATE); }출력 결과
모든 날짜 및 시간 정보 : 월요일 10 월 10 일 10:43:36 CST 2012-MONTH-DAY 형식 : 2012-09-10 개월/일/연도 형식 : 09/10/12 HH : MM : SS PM 형식 (12시) : 10:43:36 MOORN HH : MM : SS FORMAT (24 O'CLOCK) : 10:43:36 HH : MM Format (10:43:36).
날짜 형식을 정의하는 변환기는 날짜가 지정된 변환기를 통해 새 문자열을 생성하게 할 수 있습니다. 이 날짜 변환기는 그림에 나와 있습니다.
public static void main (String [] args) {날짜 date = new Date (); // B의 사용, 월 약어는 String str = stringformat입니다 (Localeus, "영어 월 약어 : %tb", 날짜); SystemOutPrintln (str); SystemOutPrintf ( "지역 월 약어 : %tb %n", 날짜); // B의 사용, 월 전체 이름 str = stringformat (localeus, "영어 월 성명 : %tb", 날짜); SystemOutPrintln (str); SystemOutPrintf ( "현지 월 이름 : %tb %n", 날짜); // a, 주간 사용은 str = stringformat (localeus, "영어 주간 약어 : %ta", 날짜)로 축약됩니다. SystemOutPrintln (str); // a, 주간 이름 SystemOutPrintf 사용 ( "지역 주 약어 : %ta %n", 날짜); // c, 2 자리 숫자 SystemOutPrintf ( "올해의 첫 두 자리 (첫 번째 2 자리 미만) : %tc %n", 날짜); // y, 2 자리 숫자 SystemOutPrintf ( "올해의 마지막 두 자리 (첫 번째 숫자 미만) : %ty %n", 날짜); // j, 1 년의 일수 SystemUtPrintf ( "1 년의 일 (즉, 일년의 날) : %tj %n", 날짜); // m, Month SystemUtPrintf ( "두 자리의 달 (0 이전 2 자리 미만) : %tm %n", 날짜); // d, 날 (두 자리 숫자, 0을 보충하기에는 충분하지 않음) SystemUtPrintf ( "두 자리 (0 전 2 자리 미만) : %td %n", 날짜); // e, 날 (0 전반 1 자리) SystemUtPrintf ( "두 자리 (0 전 2 자리 미만) : %td %n", 날짜); // e, 날 (0 전반 1 자리) SystemUtPrintf ( "매월 (0을 보충하기에 충분하지 않음) : %te", 날짜); }출력 결과
영어 월 약어 : 9 월 영어 달의 이름 : 9 월 영어 이름 : 9 월 이름 : 9 월 영어 주 약어 : 주간의 첫 두 자리 숫자 (2 자리 이하 전, 0) : 20 연도의 마지막 두 자리 (2 자리 이하, 0) : 12 년의 숫자 (254 년). 두 자리보다 0을 추가) : 09 두 자리의 날 (두 자리 미만 전, 0 추가) : 10 월의 날 (2 자리 미만, 0 추가) : 10
날짜 형식 변환기와 비교하여 시간 형식 변환기가 점점 더 정확합니다. 시간을 몇 시간, 몇 분, 초, 심지어 시간 밀리 초과 같은 단위로 포맷 할 수 있습니다. 시간 문자열을 형식화하기위한 변환기가 그림에 나와 있습니다.
| 변환기 | 설명 | 예 |
| 시간 | 2 자리 숫자 24 시간 (2 자리 이하, 0이 첫 번째 전에 추가됩니다) | 15 |
| 나 | 2 자리 수 12 시간 (추가하기 전 2 자리 미만) | 03 |
| 케이 | 2 자리 숫자 24 시간 시간 (0은 이전에 추가되지 않음) | 15 |
| 엘 | 2 자리 숫자 12 시간 (0은 이전에 추가되지 않음) | 3 |
| 중 | 2 자리의 분 (추가하기 전 2 자리 미만) | 03 |
| 에스 | 2 자리의 초 (2 자리 이하, 앞에 0을 추가) | 09 |
| 엘 | 3 자리 밀리 초 (추가하기 전 3 자리 미만) | 015 |
| N | 9 자리 숫자의 밀리 초 (9 자리 이하, 전 0을 추가) | 562000000 |
| 피 | 소문자에 대한 오전 또는 오후 표시 | 중간 : 오후 영어 : PM |
| 지 | GMT의 RFC822 시간대에 대한 오프셋 | +0800 |
| 지 | 시간대 약어 문자열 | CST |
| 에스 | 1970-1-1 00:00:00 지금까지 전달 된 몇 초 | 1193468128 |
| 큐 | 1970-1-1 00:00:00 현재까지 통과 된 밀리 초의 수입니다 | 1193468128984 |
테스트 코드
public static void main (String [] args) {날짜 date = new Date (); // h는 SystemUtPrintf를 사용합니다 ( "2 자리 24 시간 시스템 (2 자리 미만의 경우 0 이전) : %Th %n", 날짜); // i 나는 SystemUtPrintf ( "2 자리 12 시간 시간 시스템 (2 자리 미만의 경우 0 이전) : %ti %n", 날짜를 사용합니다. // k는 SystemUTPrintf ( "2 자리 24 시간 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이면 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이면 0이면 0이면 0이 아닌 경우 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이 아닌 경우 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이면 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0이 아닌 경우 0을 사용합니다. %tm %n ", date); // s는 SystemUtPrintf를 사용합니다 ("2 자리 (2 자리 미만의 경우 0 이전) : %ts %n ", 날짜); // l을 SystemUtPrintf ("3 자리 이하의 경우 0 전 이전) : %tl %n ", 날짜); // n이 digits (9 개 이하 9 이하) : %tn %n ", date); // p는 string str = stringformat (localeus,"아침 또는 오후의 오후 마크 (영어) : %tp "; SystemOutPrintln (str); SystemOutPrintf ("Minder of Monort) (중간) : %tp %n ", 날짜; 영역 : %tz %n ", 날짜); // z의 사용 SystemOutPrintf ("시간대 약어 문자열 : %tz %n ", 날짜); // S의 사용 SystemOutPrintf ( "1970-1-1 00:00:00 현재로 전달 된 초 수는 : %ts %n", 날짜); // Q의 사용 SystemOutPrintf ( "1970-1-1 00:00:00 지금까지 통과 한 밀리 초의 수 : %tq %n", 날짜); }출력 결과
2 자리 24 시간 (2 자리 미만의 경우 0 전 0 전) : 11 2 자리 12 시간 시간 (2 자리 미만의 경우 0 전) : 11 2 자리 24 시간 (2 자리 미만인 경우 0 전) : 11 2 자리 12 시간 (2 자리 미만의 경우 0 전) : 11 2 자리 (2 자리 미만) : 11 2 자리 (2 자리 미만). 2 자리 숫자 초 (2 자리 미만인 경우 0 전) : 52 3 자리 숫자 밀리 초 (3 자리 미만의 경우 0 전) : 773 9 자리 숫자 미만 (9 자리 미만인 경우 0 이전) : 77300000 오후 또는 오후 마크 (영어) : 오전 또는 오후의 오후 마크 (중형) (중간) : RFC822 시간대 : +0800 시간대 약어 약어 문자열 : CST 1970-1-1 00:00:00 현재로 전달 된 초 수 : 1347246232 1970-1-1 00:00:00 현재로 전달 된 밀리 초의 수 : 1347246232773
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.