簡體   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