Моя программа запрашивает время, и я разделяю время на ":"
. По какой-то причине, если я ввожу что-то с 0
раньше, как первое значение, оно удаляет его. Любая идея, почему это так?Integer.parseInt удаляет ведущие 0
Это мой код:
import java.util.Scanner;
public class ArrivalTime {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean rushHour;
System.out.print("Enter The Time Fiona Will Leave For Work (HH:MM): ");
String departureTime = sc.nextLine();
String parts[] = departureTime.split(":");
int departureHour = Integer.parseInt(parts[0]);
int departureMinute = Integer.parseInt(parts[1]);
System.out.println(departureHour + " " + departureMinute);
}
}
'Integer.parseInt (" 00 ")' возвращает целочисленное значение, представленное '0'. Что именно вы ожидали и почему? Почему бы не использовать части Strings '[0]' 'parts [1]' непосредственно вместо int? – Pshemo
Используйте форматированный вывод (если вы хотите '00'). Например: 'System.out.printf («% 02d:% 02d% n », departureHour, departureMinute);' –
«Удаляет ведущие нули», строго говоря, является неправильным описанием. 'ParseInt()' дает вам Java 'int' , а 'int' не имеет ведущих нулей в этом смысле (за кулисами это 32 бита и обычно имеет нулевые биты, но это совершенно другая история). Вам нужно будет узнать, что * значение * 'int' - это просто число, и * способ его печати * - это что-то еще: любое значение' int' может отображаться с любым количеством нулевых нулей или без него. –