2017-10-14 5 views
1

ユーザーはXX/XX/XXXXの形式で日付を入力していますが、区切り文字を使用して入力内の整数を選択しますが、最後に別の/を置かずに年変数を取得する方法はわかりません入力のその年の変数を取得するにはどうすればいいですか?事前にスキャナで/年末なしの年変数を取得できないのはなぜですか?

おかげ

package formatting_problem; 

import java.util.Scanner; 
public class DateFormatter { 
public static void main(String[] args) { 
    Integer day = 0; 
    Integer month = 0; 
    Integer year = 0; 
    Integer test = null; 
    Scanner input = new Scanner(System.in).useDelimiter("/"); 
    System.out.println("Enter a date in the format XX/XX/XXXX to be formatted to Month Day,Year"); 
    while (input.hasNext()){ 
     month = input.nextInt(); 
     day = input.nextInt(); 
     year = input.nextInt(); 
     System.out.println(); 
    } 

答えて

2

は、どのように私はその年の変数を取得する方法について行くのですか?

あなただけString.split()を使用することができます。

String tokens[] = input.split("/");  //where input is a String 
int month = Integer.parseInt(tokens[0]); 
int day = Integer.parseInt(tokens[1]); 
int year = Integer.parseInt(tokens[2]); 

は注意:あなたはだけではなく、彼らのラッパークラスIntegerのプリミティブデータ型intを使用することができます。


あなたの質問に答えるには、割り当てられた区切り文字がスラッシュのみであるためです。 Javaでは、デフォルトで改行文字も区切り文字の1つです。しかし、区切り文字の再定義では省略されました。それを修正する

は、同様に改行文字が含まれています

Scanner input = new Scanner(System.in).useDelimiter("/|\\n"); 

また、ちょうどあなたのwhileループを削除し、可能性があります

int month = input.nextInt(); 
int day = input.nextInt(); 
int year = input.nextInt(); 
関連する問題