为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2021-12-18 15:54:08
对于这个程序,用户被告知以“mm/dd/yyyy”的形式输入数据,我试图使用indexOf()带有“/”参数的方法将日期字符串分成三个子字符串。我试过这样做:String monthString = dateString.substring(0,dateString.indexOf("/"));    String dayString =     dateString.substring(dateString.indexOf("/"),DateString.indexOf("/")+1)谢谢你。编辑。谢谢大家的回答,但是我的老师说我不能使用拆分功能。他说我可以只使用 indexOf("/") 和 substring() 来解决这个问题。我需要两次调用 indexOf("/") 和四次调用 substring()。
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

String[] element = dateString.split("/");

String strDay = element[0];

String strMonth = element[1];

String strYear = element[2];

这就是你要找的。


查看完整回答
反对 回复 2021-12-18
?
慕森卡

TA贡献1806条经验 获得超8个赞

您可以使用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


查看完整回答
反对 回复 2021-12-18
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

如果您使用的是 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


查看完整回答
反对 回复 2021-12-18
  • 3 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信