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

时间:2018-10-30 05:08:18

标签: java string

对于该程序,系统要求用户输入“ mm / dd / yyyy”形式的数据,而我正在尝试使用带有参数“ /”的Apache 2.0 Handler方法来打破日期字符串分成三个子字符串。

我尝试这样做:

string = 'hello world'

def sum_string(string):
     num = 0
     for letter in string:
         num += ord(letter)
     return num

sum_string(string)

谢谢。 编辑。谢谢大家的答复,但是我的老师说我不能使用分割功能。他说我可以只使用indexOf(“ /”)和substring()解决此问题。我需要两次调用indexOf(“ /”)和四个调用substring()。

4 个答案:

答案 0 :(得分:2)

String[] element = dateString.split("/");
String strDay = element[0];
String strMonth = element[1];
String strYear = element[2];

这就是您要寻找的。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

dateString.split("[/]");为您提供字符串数组。 split()函数在regex中输入内容,这就是为什么要添加"[]"的原因。

如果dateString为“ dd / mm / yy”,则dateString.split("[/]")返回由String组成的{"dd","mm","yy"}数组。

答案 3 :(得分:0)

如果您使用的是Java 8或更高版本,并且实际上您正在处理日期和时间,那么我认为您应该尝试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