Java 如何使用.split函数将不同的数据类型分隔为二维数组?

Java 如何使用.split函数将不同的数据类型分隔为二维数组?,java,multidimensional-array,split,Java,Multidimensional Array,Split,我有一个.txt文件,其中有几行内容如下: 机器人1923人类M 12米星光,731543,B,约瑟夫·史密斯 批准1932靛蓝X 23X GI,9999,14,R 我有多个2D数组,每种数据类型一个。Int、char、string和double。每个数组只需要填充其特定的数据类型。我认为我应该使用.split函数来实现这一点,但我不知道如何实现。非常感谢您的帮助,请提前感谢。如果我不够清楚,我可以尝试在回复中帮助您澄清问题。上的Java API文档是一个很好的开始 假设您知道如何从文件中获取字

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

机器人1923人类M 12米星光,731543,B,约瑟夫·史密斯

批准1932靛蓝X 23X GI,9999,14,R


我有多个2D数组,每种数据类型一个。Int、char、string和double。每个数组只需要填充其特定的数据类型。我认为我应该使用.split函数来实现这一点,但我不知道如何实现。非常感谢您的帮助,请提前感谢。如果我不够清楚,我可以尝试在回复中帮助您澄清问题。

上的Java API文档是一个很好的开始

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

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()函数来选择特定的单词/字符/整数,只需浏览句子的每个部分,就可以大致解决这个问题。然后使用循环将每个零件存储到二维阵列中。我收到的文本文件不太残酷,我的程序运行得很好。到目前为止,你尝试了什么?我发现了这一部分,我在下面关于它的其他回复上留下了评论,谢谢