【问题标题】:using an array to create a string使用数组创建字符串
【发布时间】:2012-10-04 07:19:34
【问题描述】:

我的某些代码有问题。我收到了一个dd/mm/yyyy 格式的日期,它是一个名为dateofQ 的字符串。

我希望日期为 yyyy_mm_dd,我在数组中使用了 string.split(),但它不会返回名为 myArr[3] 的第三个数组:

String[] myArr = dateofQ.split("\\/");
String dateFormat = String.format("%s_%s_%s",myArr[2],myArr[1],myArr[0]);

它返回 myArr[1] 和 myArr[0],但是当我还添加 myArr[3] 时,我在运行时遇到问题:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at ReadFile.main(ReadFile.java:34)

【问题讨论】:

  • 请输入示例!我的意思是你在 dateofQ 中给出了什么
  • 我试过你的代码,它对我有用。你确定日期真的是 dd/mm/yyy 格式吗?
  • 呃。伙计们。同样,OP 将其编辑为 myArray[2] 而不是 myArr[3],但其他人也在编辑它,它覆盖了他的编辑。 :-\.

标签: java arrays split


【解决方案1】:

好吧,数组只有 3 个元素,myArr[3] 正在尝试获取 第四个 元素(请记住,数组是从零开始的)。

要获取第三个元素,请使用myArr[2]。

【讨论】:

  • 他编辑它以引用 myArr[2] 就在您发布此内容时。
  • 其实是别人在他编辑的时候编辑的,覆盖了他的改动,所以我又放回去了。
  • 数组索引发生在2 索引所以这不是他的问题的解决方案。
  • 好吧,OP 确实说 myArr[3]。 OP 将其编辑为 myArr[2],但同时有人也在编辑他的帖子并覆盖了他的更改。我重新编辑了它,但它尚未被接受为编辑。
【解决方案2】:

看起来myArr的长度最多为2。

请检查以确保myArr.length 不小于 3。

插入

System.out.println(myArr.length);

紧接着:

String[] myArr = dateofQ.split("\\/");

是一种简单的检查方法。

【讨论】:

  • 他应该检查发生在 2 的长度数组索引,所以数组中没有足够的元素。
【解决方案3】:

我可能遗漏了一些非常明显的东西,但你不能做一些类似...

try {
    String dateofQ = "08/03/1972";
    SimpleDateFormat in = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat out = new SimpleDateFormat("yyyy_MM_dd");

    dateofQ = out.format(in.parse(dateofQ));
    System.out.println(dateofQ);
} catch (ParseException ex) {
    ex.printStackTrace();
}

输出1972_03_08

【讨论】:

  • 谢谢你这样做了。我以前从未听说过 SimpleDateFormat(我是菜鸟)。我确实需要添加 import java.text.SimpleDataFormat 和 import java.text.ParseException 才能让它工作。再次感谢
【解决方案4】:

ArrayIndexOutOfBoundsException: 2 此错误表示您的数组大小小于 3 个元素,并且您正在尝试访问第三个元素。即您将收到错误@ myArr[2]。

你应该做的是你应该先检查数组的长度,然后再访问它。如果无效数组拒绝它。

if(myArr.length==3)//Process else you need to reject

更好的方法可能是使用 MadPorgrammer's 答案中指定的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 2013-06-13
    • 2013-09-24
    • 1970-01-01
    • 2011-08-21
    • 2023-03-16
    • 2016-03-10
    相关资源
    最近更新 更多