java - 字符串拆分功能未按预期工作

标签 java

我正在尝试用毫秒拆分日期并以我的格式打印,但出现索引超出范围的异常。它适用于 split("/") 但不适用于 split(".")。

我不知道为什么会这样。

代码是:

public class c {

public static void main(String[] arg)
{
    Date date=new Date();                                                                    
     DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.FFF");                   
     System.out.println(formatter.format(date));

     String a=formatter.format(date);
     String b[]=a.split(" ")[0].split("/");
     String x1=(Integer.parseInt(b[2])-2000)+b[1]+b[0];
     System.out.println("date part is : "+x1);
     String c[]=a.split(" ")[1].split(":");
     System.out.println(c[0]);
     System.out.println(c[1]);
     System.out.println(c[2]);
     System.out.println(c[2].trim().split(".")[0]);// exception at this line
     System.out.println(c[2].trim().split(".")[1]);
     String x2=c[0]+c[1]+c[2].split(".")[0]+c[2].split(".")[1]+"";
     System.out.println("time part is : "+x2);
}
}

日志是:

08/10/2013 12:02:18.002
date part is : 131008
12
02
18.002
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0   at c.main(c.java:22)

最佳答案

java.lang.String.split(String regex)以正则表达式作为参数。

单个点 . 是“任何字符”的正则表达式。所以你在每个字符之后拆分输入。

转义点:

split("\\.");

关于java - 字符串拆分功能未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19240939/

相关文章:

Java 正则表达式谜题

java - "Character Count Java Program"有问题

java - 如何使用 Java SDK 在 DynamoDB 中建模多对多关系

java - onSuccess 调用后,executeTransactionAsync 不会刷新数据

java - Eclipse(和 STS)使用错误的 JDK 启动

java - 是内存泄漏吗?

java - 在 Eclipse 中从 .jsp 文件访问 .java 文件

java - 在 Java 中移动图像

java - Android应用程序无法将数据写入Firebase数据库

java - AWT 与 Swing 的对比……为什么要使用 Swing?