如何从字符串中提取数字?

时间:2015-02-16 20:51:33

标签: java

如何从19921231中提取12个?我使用模数法还是什么?非常感谢。我知道如何获得1992年和31年,但棘手的部分是12.任何建议?

5 个答案:

答案 0 :(得分:1)

如果您的输入字符串代表Date,那么您可以

DateFormat df = new SimpleDateFormat("yyyyMMdd");
Date date = df.parse("19921231");

System.out.println(date.getMonth() + 1);

或者,您也可以将Calendar类用作

Calendar cal = Calendar.getInstance();
cal.setTime(df.parse("19921231"));

System.out.println(cal.get(Calendar.DAY_OF_MONTH)); // 31
System.out.println(cal.get(Calendar.YEAR)); // 1992
System.out.println(cal.get(Calendar.MONTH) + 1); // 12

答案 1 :(得分:0)

你可以为四个字符,两个字符,两个字符进行正则表达式匹配。

或者您可以查看String上的substring方法。

但是,考虑到您的目的,我建议您调查SimpleDateFormat类

答案 2 :(得分:0)

假设这是一个总是这样的日期格式,为什么不使用subtring()方法(http://www.tutorialspoint.com/java/java_string_substring.htm)?

或许也可以查看一下,一旦你做了一点研究,这可能是最好的选择:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 3 :(得分:0)

使用子字符串。

例如,如果您有以下内容:

    String string = "19921231";

    String year = string.substring(0, 4);
    String month = string.substring(4, 6);
    String day = string.substring(6, 8);

    System.out.println(year);
    System.out.println(month);
    System.out.println(day);

输出结果为:

1992
12
31

如果您希望在获得较小的部件后将它们转换回整数,您可以执行以下操作

int year_int = Integer.parseInt(year);
int month_int = Integer.parseInt(month);
int day_int = Integer.parseInt(day);

答案 4 :(得分:0)

你需要使用substring:

final int year = Integer.parseInt(str.substring(0, 4));
final int month = Integer.parseInt(str.substring(4, 6));
final int day = Integer.parseInt(str.substring(6));