在java中用字符串分割函数

时间:2015-10-09 06:54:19

标签: android

我试图用dot分割String我无法得到答案

String dob = "05.08.2010";
String arr[] = dob.split(".");
System.out.println(arr[0]+":"+arr[1]+":"+arr[2]);

4 个答案:

答案 0 :(得分:3)

试试这个

String arr[] = dob.split("\\.");

即,您需要使用双斜杠来转义点,因为dot将匹配正则表达式中的任何字符。另请注意,双反斜杠用于在正则表达式中创建单个反斜杠。

答案 1 :(得分:2)

String.split采用正则表达式模式。 .匹配正则表达式中的任何字符。所以你基本上是说“拆分这个字符串,将任何字符作为分隔符”。你想要:

String arr[] = dob.split("\\.");

...这实际上是\.的正则表达式模式,其中反斜杠正在逃避点。对于字符串文字,反斜杠需要加倍,以便在Java编译器方面转义反斜杠。

或者,您可以使用

String arr[] = dob.split(Pattern.quote("."));

...或更好使用日期解析/格式化代码(例如SimpleDateFormatDateTimeFormatter)来解析和格式化日期。毕竟,这就是它的用途 - 并且最好早点而不是迟到找到数据问题(例如“99.99.9999”)。

答案 2 :(得分:1)

在拆分功能中,请勿使用.,因为它是正则表达式特殊字符,需要进行转义:\\.

您还可以使用

解析日期
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String dateInString = "05.08.2010";
Date date = sdf.parse(dateInString);

修改

现在您可以使用(请参阅此thread

来访问日/月/年
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);

答案 3 :(得分:1)

如果您只想打印出来,也可以尝试

System.out.println(Arrays.toString(dob.split("\\.")));

System.out.println(dob.replace(".", ":"));