繁体   English   中英

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM