[英]Integer.parseInt removes leading 0
我的程序要求時間,我將時間分成":"
。 出於某種原因,如果我輸入一個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);
}
}
int departureHour = Integer.parseInt(parts[0]);
int departureMinute = Integer.parseInt(parts[1]);
System.out.println(departureHour + " " + departureMinute);
Integer.parseInt(ANY_INTEGER_VALUE)
返回整數。 例如, Integer.parseInt(03)
將返回3而不是03。
如果要顯示給定的輸入
03:09
實際上,你應該保持字符串顯示原樣:
System.out.println (parts[0] + " " + parts[1]);
解析為int僅用於計算目的。
注意:我在閱讀@Elliot的評論后編輯了以下部分。
或者@Elliot在他的評論中指出:
System.out.printf("%02d %02d%n", departureHour, departureMinute);
問題是Integer.parseInt()
調用。 當你傳遞一些帶有前導零的字符串時,它們將被刪除,結果是一個自然數。 如果你想看到前導零,只需寫:
String departureHour = parts[0];
String departureMinute = parts[1];
System.out.println(departureHour + " " + departureMinute);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.