找到两个“/”之间的子串

对于这个程序,用户被告知以“mm/dd/yyyy”的形式输入数据,我试图使用indexOf()带有“/”参数的方法将日期字符串分成三个子字符串。


我试过这样做:


String monthString = dateString.substring(0,dateString.indexOf("/"));

    String dayString = 

    dateString.substring(dateString.indexOf("/"),DateString.indexOf("/")+1)

谢谢你。编辑。谢谢大家的回答,但是我的老师说我不能使用拆分功能。他说我可以只使用 indexOf("/") 和 substring() 来解决这个问题。我需要两次调用 indexOf("/") 和四次调用 substring()。


蛊毒传说
浏览 138回答 3
3回答

隔江千里

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:30Month:9Year:2018对于月份字段Calendar.MONTH从 0 开始,这意味着 Jan=0,Feb=1 请参阅Java Doc

斯蒂芬大帝

如果您使用的是 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java