2014-01-05 6 views

ответ

5

прямо вперед, непроверяющий путь:

String[] parts = time.split(":"); 
int hour = Integer.parseInt(parts[0]); 
int minute = Integer.parseInt(parts[1]); 
+0

Не становится намного проще, чем это. – TEK

+0

На самом деле, он должен усложняться для проверки времени, с некоторым регулярным выражением, например. '\ Д {2}: \ д {2}'. – ahanin

0

Попробуйте это:

String arr[]= time.split(":", 2); 
    int num1 = Integer.parseInt(arr[0]); 
    int num2 = Integer.parseInt(arr[1]); 
+0

Как добавление 'limit' в' split' улучшает уже отправленный ответ? – Pshemo

+0

На самом деле это будет то же самое. Просто немного опоздал, набрав ответ. – Chaitanya

3

Вы должны рассмотреть возможность использования Calendar разобрать такие строки времени:

String time = "21:45"; 

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
sdf.setLenient(false); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(sdf.parse(time)); 

int hour = calendar.get(Calendar.HOUR_OF_DAY); 
int minute = calendar.get(Calendar.MINUTE); 

System.out.println(hour); 
System.out.println(minute); 
 
21 
45 

Вы можете справиться с потенциальной ParseException иметь дело с недопустимыми входами.

+0

Здесь отсутствует один важный момент, а именно 'setLenient (false)', см. Мой ответ. –

+1

@MenoHochschild Да, вы правы, я добавлю это к фрагменту выше. +1 к вам. – arshajii

+0

О, еще одна проблема, вы используете hh: mm, я бы использовал HH: mm для 24 часов. ;-) –

1

Здесь поистине проверки решения:

String time = "21:45"; 

boolean valid = true; 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
sdf.setLenient(false); // important for validation 

GregorianCalendar gcal = new GregorianCalendar(); 
try { 
    gcal.setTime(sdf.parse(time)); 
} catch (ParseException pe) { 
    valid = false; 
} 

if (valid) { 
    int hours = gcal.get(Calendar.HOUR_OF_DAY); 
    int minutes = gcal.get(Calendar.MINUTE); 
    System.out.println("Hours: " + hours); 
    System.out.println("Minutes: " + minutes); 
} else { 
    System.out.println("Sorry, the input is not valid: " + time); 
} 
Смежные вопросы