【问题标题】:How would I use the .split function to separate different data types into 2D arrays?我将如何使用 .split 函数将不同的数据类型分成二维数组?
【发布时间】:2019-12-07 00:33:16
【问题描述】:

我有一个 .txt 文件,其中包含如下几行:

Robot 1923 human M 12M Star Gaze, 73, 1543, B, Joseph Smith

Sanction 1932 indigo X 23X GI, 9999, 14, R

我有多个二维数组,每种数据类型一个。整数、字符、字符串和双精度。每个数组只需要填充其特定的数据类型。我相信我应该使用 .split 函数来做到这一点,但我不知道怎么做。任何帮助表示赞赏,提前感谢,如果我不够清楚,我可以尝试在回复中帮助解决问题。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我想出了这部分,我在下面的其他回复中留下了评论,不过谢谢

标签: java multidimensional-array split


【解决方案1】:

String.split() 上的 Java API 文档是一个很好的起点。

假设您知道如何从文件中获取String(在示例代码中表示为line),您可以执行以下操作:

String line = "C3PO 1977 humanoid M 11M Star Wars, 70, 1750, A, Anthony Daniels";

// As per the documentation, the split() method will return a String array, broken
// along the lines of the regular expression provided as argument

String[] values = line.split(",");

// Some variable names to hold the elements of the array

String foo;
int bar;
double baz;
String quz;
String actor;

foo = values[0];

// Converting data type... exceptions must be caught and handled

try {
    bar = Integer.parseInt(values[1]);
}
catch(NumberFormatException e) {
    e.printStackTrace();
}
catch(NullPointerException e1) {
    e.printStackTrace();
}

try {
    baz = Double.parseDouble(values[2]);
}
catch(NumberFormatException e) {
    e.printStackTrace();
}
catch(NullPointerException e1) {
    e.printStackTrace();
}

quz = values[3];

actor = values[4];

请记住,此代码对解决输入质量问题没有多大作用。您的输入文件应该是常规的(每行中的列数相同,整个列中的数据类型相同),否则代码将严重失败。

【讨论】:

  • 如果有任何随机逗号,此方法也会失败。例如"Monsters, Inc." 会导致一些问题
  • 感谢两位回复。我几乎可以通过拆分和使用 next() 函数来选择特定的单词/字符/整数,然后遍历句子的每个部分。然后只需使用一个循环将每个部分存储到二维数组中。给我的文本文件不是太残酷,我的程序可以很好地处理它。
猜你喜欢
  • 2023-04-06
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
  • 2019-08-08
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多