Java 如何从文件中读取int、text和double并将其存储到arraylist中?

Java 如何从文件中读取int、text和double并将其存储到arraylist中?,java,arrays,string,Java,Arrays,String,我要做的是读取一个包含以下行的文本文件 232131231,随机名称,23.3232 我只知道如何把它当作整行的一串来读。我不知道如何单独阅读。这是我的测试代码 主要 您可以为此使用split(String regex)。 考虑这个简单的例子: String mystr = "232131231, random name, 23.3232"; List<String> list = Arrays.asList(mystr.split(", ")); for(String str :

我要做的是读取一个包含以下行的文本文件

232131231,随机名称,23.3232

我只知道如何把它当作整行的一串来读。我不知道如何单独阅读。这是我的测试代码

主要

您可以为此使用
split(String regex)

考虑这个简单的例子:

String mystr = "232131231, random name, 23.3232";
List<String> list = Arrays.asList(mystr.split(", "));
for(String str : list){
    System.out.println(str);
}
如果您特别想以
ArrayList
的形式获取列表,可以使用
ArrayList(集合列表)
版本的
ArrayList

ArrayList list = new ArrayList(Arrays.asList(mystr.split(", ")));
使用
split(String regex)
拆分字符串。(有关
拆分()
,请参阅) 然后,您可以按照您想要的方式单独解析每个值

以下是使用您的数据的示例:

String toBeSplit = "232131231, random name, 23.3232";
String[] split = toBeSplit.split(",");
int value1 = Integer.parseint(split[0].trim());
String value2 = split[1].trim();
double value3 = Double.parseDouble(split[2].trim());
我使用
trim()
(请参阅for
trim()
)来清除分割后留下的空白

这里有另一种不使用
trim()
的方法:(只需在拆分正则表达式中添加一个空格)


嘿,我已经照你说的做了。由于某种原因,程序无法运行。线程“main”java.lang.NumberFormatException中的异常:在java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.Integer.parseInt(Integer.java:495)在java.lang.Integer.parseInt(Integer.java:527)在javaapplication9.javaapplication9.splitString(javaapplication9.java:36)中为输入字符串:“01001001010100011”在javaapplication9.javaapplication9.main(javaapplication9.java:58)@ZhiJTeoh,int的最大值是2147483647。这是因为int只能存储32个字节。您试图存储的数字是1001010100011(解析int时去掉前导零),它比2147483647大得多。请尝试Long.parseLong(字符串)并将变量类型设置为Long。long是64位的,最多可以存储9223372036854775807。谢谢lot@ZhiJTeoh没问题!如果我的回答对你有用,请接受。祝你今天愉快!:)
232131231
random name
23.3232
ArrayList list = new ArrayList(Arrays.asList(mystr.split(", ")));
String toBeSplit = "232131231, random name, 23.3232";
String[] split = toBeSplit.split(",");
int value1 = Integer.parseint(split[0].trim());
String value2 = split[1].trim();
double value3 = Double.parseDouble(split[2].trim());
String toBeSplit = "232131231, random name, 23.3232";
String[] split = toBeSplit.split(", ");
int value1 = Integer.parseint(split[0]);
String value2 = split[1];
double value3 = Double.parseDouble(split[2]);