查找两个"/"之间的子字符串



对于这个程序,用户被告知以"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日期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

对于月份字段日历。月份从0开始,表示1月=0,2月=1。请参阅Java文档

dateString.split("[/]");为您提供字符串数组。split()函数在regex中进行输入,这就是添加"[]"的原因。

如果dateString为"dd/mm/yy",则dateString.split("[/]")返回由{"dd","mm","yy"}组成的String数组。

如果您使用的是Java 8或更高版本,并且实际上您正在处理日期和时间,那么我认为您应该尝试一下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

最新更新