1

文字列を異なる配列インデックスに分割しようとしています。この文字列は ( を介して) ユーザー入力から取得され、変数java.util.Scannerにロードされています。String文字列からの入力を異なる配列インデックスに分割するにはどうすればよいですか?

DOBまた、であることによって暗示される数学関数をどのように実行できintますか?

これが私のコードです:

import java.util.Scanner;

public class main {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter date of birth (MM/DD/YYYY):");
        String DOB;
        DOB = input.next();
        int age = 0;
        age = 2013 - DOB - 1;
        int age2 = 0;
        age2  = age + 1;
        System.out.println("You are " + age + " or " + age2 + " years old");
    }
}
4

4 に答える 4

5
String[] parts = DOB.split("/");
int months = Integer.parseInt(parts[0]);
int days = Integer.parseInt(parts[1]);
int years = Integer.parseInt(parts[2]);

次に、計算yearsの代わりに使用DOBします。

さらに良いことに、 を使用new Calendar()して今日の正確な日付を取得し、それと比較します。

于 2013-01-31T02:00:35.653 に答える
2

日付文字列を Java オブジェクトに解析するに示すようにDateTimeFormatを使用して、文字列を解析してDateTimeオブジェクトにし、メンバーにアクセスします。

DateTimeFormatter format = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTime dateTime = format.parseDateTime(DOB);

これはJoda Time ライブラリを使用します。

または、 SimpleDateFormatを同様の方法で使用して、 Dateオブジェクトに解析することもできます。

于 2013-01-31T02:01:07.230 に答える
0

文字列を認識するためにキーボード入力を使用していることに気付きました。ユーザーが期待どおりに入力しないと、プログラムがクラッシュします。(Java を始めたばかりの場合は、これで問題ありません。もう一度実行できます)

3回も尋ねることで、分割しやすくすることができます。

int dob[] = new Integer[3]; // integer array made from Integer class-wrapper
System.out.println("Input day");
dob[0] = Integer.parseInt(input.next()); 
System.out.println("Input month");
dob[1] = Integer.parseInt(input.next());
System.out.println("Input year");
dob[2] = Integer.parseInt(input.next());

これで、配列に 3 つの整数があり、分割して操作する準備が整いました。

Integer がテキスト入力を数値として解析できない場合、NumberFormatException が発生します。

于 2013-01-31T02:27:12.033 に答える