[英]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.