【发布时间】:2016-07-20 15:45:52
【问题描述】:
我正在尝试创建一个数组,该数组包含通过对通过循环输入的字符串使用 String.split() 方法创建的字符串数组。
int N = in.nextInt();
String [][] defibDetails = new String[N][];
in.nextLine();
for (int i = 0; i < N; i++) {
String DEFIB = in.nextLine();
String [] details = DEFIB.split(";");
defibDetails[i][]=details;
}
System.out.println(defibDetails[0][0]);
我希望 System.out 在第一个 ; 之前成为 DEFIB 的子字符串,其中循环计数器 i = 0。感谢您的任何想法。
【问题讨论】:
-
您知道总输入的大小吗?字符串数组需要被赋予预定的大小。你有没有想过使用列表。 List
- > details = new ArrayList();代码中的“in”对象是 Scanner 类吗?
-
阅读你从编译器得到的错误信息,修复错误(它应该是
defibDetails[i] = details;,你会得到预期的行为。你不能指望一个程序做某事,如果它没有甚至都不编译。 -
不幸的是,长度各不相同。我对使用任何形式的集合持开放态度,但对 Java 来说还是很陌生,并且不知道给定应用程序的最佳选择。查看列表但无法计算出获取值的 2d 语法。会是
list.get(0).list.get(0)吗? -
nizet 代码实际上是针对二维数组的,所以我不认为我想这样做,除非您可以详细说明原因?
-
没有。 list.get(0) 返回一个 List
。您可以在 List 上调用 get(0) 以获取其第一个元素。所以它是 list.get(0).get(0)。但是您可以使用两条指令使其更清晰: List firstList = list.get(0); String firstString = firstList.get(0);
标签: java arrays string multidimensional-array