我有一個Java編程任務,你必須在一行上輸入一個日期,它會給你一個基於日期的命理(星座圖)報告。假定用戶將輸入格式化日期,並用空格分隔。查找字符串中的下一個字符?
我可以通過使用in.nextInt()檢索輸入的月份,日期和年份。但是,我還必須檢查用戶是否爲日期的每個部分使用了正確的分隔字符,這意味着我只需檢查用戶是否使用了正斜槓。
查看我的代碼時,我目前使用charAt()來查找分隔字符。問題是日期不會總是14個字符。因此,10/17/2004年的日期長度爲14個字符,但1992年4月7日的日期只有12個字符長,這意味着「slash1」並不總是in.charAt(3),in後一種情況會出現在.charAt(2)中。
java是否有一個方法,允許像in.nextChar()?我知道它沒有,但我怎麼才能找到日期中的下一個字符?
編輯:我忘了最初反映這個,但我的教授說,我們不允許使用String.split()方法,出於某種原因。事情是,我得到的這個月,一天,一年都很完美。我只需要檢查該人是否使用正斜槓來分隔日期。如果輸入短劃線,則日期無效。
public void getDate()
{
char slash1, slash2;
do
{
System.out.print("Please enter your birth date (mm/dd/yyyy): ");
Scanner in = new Scanner(System.in);
String date = in.nextLine();
month = in.nextInt();
day = in.nextInt();
year = in.nextInt();
slash1 = date.charAt(3);
slash2 = date.charAt(8);
} while (validDate(slash1, slash2) == false);
calcNum();
}
對不起,我應該提到我的問題這點。這正是我所需要的,但我的老師說出於某種原因我們不允許使用String.split()方法。感謝您的意見。 – homersimpson
擰它,我使用String.split()。謝謝! – homersimpson
@homersimpson我添加了另一個不使用拆分的答案。 – Scooter