4

私は次の質問に取り組んでいます:

24時間制の時刻は、左端の2桁が時(0〜23を含む)、右端の2桁が分(0〜59を含む)を表す4桁の数字です。たとえば、2130は夕方の9時半を表します。時間をカプセル化するクラスTimeを記述します。次のインスタンスメソッドが必要です。

キーボードから時刻を読み取ることができます(2130などの4桁の数字として提供されます)。数字は有効な時間を表すとみなすことができます。

これまでの私のコードは次のとおりです。

import java.util.Scanner;
import java.io.*;

class Time {

private double hour, min;
Scanner scanner = new Scanner(System.in);

Time() {
    hour = 00;
    min = 00;
}

Time(double h, double m) {
    hour = h;
    min = m;
}

void get() {
    System.out.println("Please enter a time in 24 hour format: ");
    double x = scanner.nextDouble();
    hour = x / 100;
    min = x % 100;
    System.out.println("The time is " + hour + ":" + min);
}

public String toString() {
    return "Time: " + hour + min;
}
}

私が抱えている問題は、4桁の入力を時間と分に分割する方法です。すべてのアドバイス、ヒントをいただければ幸いです。

4

2 に答える 2

11

4桁の整数の場合: x

x / 100 - gives the 2 left digits
x % 100 - gives the 2 right digits

編集:ここでは、0000が整数として0に変換され、hour = 0(00に変換)、min = 0(00に変換)が生成されるため、見出しのゼロが黙って省略されていると仮定します。

于 2012-08-20T12:38:49.493 に答える
6

次に入力を読み取り、メソッドをString使用substring()して個々の時間と分を取得します。

String s=scanner.nextLine();

String hours=s.substring(0,2);//hour
String minutes=s.substring(2,4);//min

System.out.println("The time is " + hours + ":" + minutes);
于 2012-08-20T12:38:34.557 に答える