24 시간 제 시간 을 12 시간 제로 바 꾸 고 사용자 정의 이상 처리 와 간단 한 정규 표현 식 을 연습 합 니 다.
3756 단어 정규 표현 식
package com.cn.tibco.time;
import java.util.Scanner;
public class GetTime {
public static void main(String args[]) {
GetTime getTime = new GetTime();
boolean ison = true;
while (ison) {
getTime.resetTime();
System.out.println("Again?(y/n)");
Scanner keyboard = new Scanner(System.in);
String yn = keyboard.next();
if (yn.equalsIgnoreCase("n")) {
ison = false;
}
}
}
public void resetTime() {
System.out.println("Enter time in 24-hour notation:");
Scanner keyboard = new Scanner(System.in);
String time = keyboard.nextLine();
System.out.println("That is the same as");
try {
isFormat(time);
int hours = getHours(time);
int minutes = getMinutes(time);
if (hours > 12 && minutes >9) {
String h1 = Integer.valueOf(hours - 12).toString();
time = h1 + ":" + getMinutes(time) ;
System.out.println(time + " pm");
} else if ( hours > 12 && minutes <10) {
String h1 = Integer.valueOf(hours - 12).toString();
time = h1 + ":0" + getMinutes(time) ;
System.out.println(time + " pm");
}else {
System.out.println(time + " am");
}
} catch (TimeFormatException e) {
e.printStackTrace();
resetTime();
}
}
// , 。
public void isFormat(String time) throws TimeFormatException {
if(!time.contains(":")){
throw new TimeFormatException("There is no such time as " + time);
}
int hours = getHours(time);
int minutes = getMinutes(time);
if (hours < 0 || hours > 24) {
throw new TimeFormatException("There is no such time as " + time);
} else if (minutes < 0 || minutes > 59) {
throw new TimeFormatException("There is no such time as " + time);
}
}
//
public int getHours(String time) {
int pos;
pos = time.indexOf(":");
int hours = Integer.parseInt(time.substring(0, pos));
return hours;
}
//
public int getMinutes(String time) {
int pos;
pos = time.indexOf(":");
int minutes = Integer.parseInt(time.substring(pos + 1));
return minutes;
}
}
이상 처리 클래스
package com.cn.tibco.time;
public class TimeFormatException extends Exception {
public TimeFormatException(){
super();
}
public TimeFormatException(String message){
super(message);
}
@Override
public String getMessage() {
return super.getMessage();
}
}
/ / 정규 표현 식 을 사용 하여 방법 isFormat () 을 수정 합 니 다. 코드 는 다음 과 같 습 니 다.
public void isFormat(String time) throws TimeFormatException {
if(!time.matches("\\d{1,2}\\:\\d{2}")){
throw new TimeFormatException("There is no such time as " + time);
}
int hours = getHours(time);
int minutes = getMinutes(time);
if (hours < 0 || hours > 24) {
throw new TimeFormatException("There is no such time as " + time);
} else if (minutes < 0 || minutes > 59) {
throw new TimeFormatException("There is no such time as " + time);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.