簡體   English   中英

Integer.parseInt刪除前導0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM