2013-01-12 4 views
-8

에 시간을 합계 :어떻게이 문자열이 자바

String times = "5:15 | 4:41 | 4:27 | 3:13 | 5:01 | 4:47 | 4:50 | 5:20" 

결과가되어야한다 "37:34"는

어떻게이 자바 문자열 처리하고 예상 결과를 반환합니까?

+3

여기에 세 가지 별도의 작업이 있습니다. 문자열을 시간 관련 유형으로 파싱합니다. 상기 시간 - 관련 값들을 합산하는 단계; 결과의 형식을 지정합니다. 우리는 당신이 그 중 어느 것을 가지고 얼마나 멀리 있는지 알지 못합니다. –

+0

시도해 보셨습니까? – partlov

답변

0

날짜 시간 변수를 작성하고이를 합산하는 것은 방법입니다,하지만 난 당신이 자바를 처음 사용하는 가정하고 몇 가지 코딩을 위해 당신을 경고하는 기본적인 대답을하고 쉬운 방법 가지 않는 :

String[] timesSplit = times.split(" | "); 

int hour = 0; 
int minute = 0; 

for(int i = 0; i < timesSplit.length; i += 2) { 
    String[] time = timesSplit[i].split(":"); 
    hour += Integer.parseInt(time[0]); 
    minute += Integer.parseInt(time[1]); 
} 

hour += minute/60; 
minute %= 60; 

String result = hour + ":" + minute; 

을 편집 : 이상한 행동에 대한 분할 "|"결과 문자열 배열과 같은 :

5:33, |, 1:32, ..

그래서 그에 따라 증가 for 문을 편집했다. 실행 코드 here을 확인할 수 있습니다.

1

이 문자열을 구문 분석하는 데 tokenizer를 사용합니다.
을 반복하고, 시간을 모든 값으로 취하고 (h + h 및 min + min)를 더합니다. 완료하면 계산 :

hours += minutes/60 
minutes = minutes % 60 

그게 전부 야!

0

나는 문자열을 구문 분석하고 분 단위로 변환합니다. 그것들을 더하고 시간과 분으로 다시 변환하십시오.