[英]Find the substring between two “/”
對於此程序,系統要求用戶以“ mm / dd / yyyy”的形式輸入數據,而我試圖使用帶有參數“ /”的indexOf()
方法將日期字符串分成三個子字符串。
我嘗試這樣做:
String monthString = dateString.substring(0,dateString.indexOf("/"));
String dayString =
dateString.substring(dateString.indexOf("/"),DateString.indexOf("/")+1)
謝謝。 編輯。 謝謝大家的答復,但是我的老師說我不能使用分割功能。 他說我可以只使用indexOf(“ /”)和substring()解決此問題。 我需要兩次調用indexOf(“ /”)和四個調用substring()。
String[] element = dateString.split("/");
String strDay = element[0];
String strMonth = element[1];
String strYear = element[2];
這就是您要尋找的。
可以使用Java Date API代替split()方法
String dateString = "10/30/2018";
try {
DateFormat dateFromatter = new SimpleDateFormat("MM/dd/yyyy");
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFromatter.parse(dateString));
System.out.println("Date:" + calendar.get(Calendar.DATE));
System.out.println("Month:" + calendar.get(Calendar.MONTH));
System.out.println("Year:" + calendar.get(Calendar.YEAR));
} catch (Exception e) {
e.printStackTrace();
}
產量
Date:30
Month:9
Year:2018
對於月份字段Calendar.MONTH從0開始,這意味着Jan = 0,Feb = 1引用Java Doc
dateString.split("[/]");
給您字符串數組。 split()
函數在regex
接受輸入,這就是為什么要添加"[]"
原因。
如果dateString為“ dd / mm / yy”,則dateString.split("[/]")
返回由{"dd","mm","yy"}
組成的String
數組。
如果您使用的是Java 8或更高版本,並且實際上正在處理date和time ,那么我認為您應該嘗試使用LocalDate.parse
並針對您的問題進行嘗試,然后可以輕松實現該目標:
LocalDate theDate = LocalDate.parse("08/22/2018", DateTimeFormatter.ofPattern("MM/d/yyyy"));
System.out.println("year: " + theDate.getYear() + " month: " + theDate.getMonthValue() + " day: " + theDate.getDayOfMonth());
輸出將是:
year: 2018 month: 8 day: 22
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.