我必须创建一个String[]
包含5个字符串的字符串,这些字符串中的每个字符串都包含多个子字符串,且数据之间用逗号分隔,我必须将此int数组转换ArrayList
为按以下顺序对子字符串进行分段:数字'1、2、3, 4,5'是学生证号。'john,suzan,jack,erin,adan'是名字等等。但是,我遇到的唯一问题是当我尝试将一系列成绩(例如:'88,79、59')打印到ArrayList
打印对象:887959(1个arraylist对象),不是88(1个arraylist对象),79(另一个arraylist对象),...
我究竟做错了什么?我该如何解决?
代码:
String[] kaizer =
{
"1,John,Smith,[email protected],20,88,79,59",
"2,Suzan,Erickson,Erickson_1990@gmailcom,19,91,72,85",
"3,Jack,Napoli,The_lawyer99yahoo.com,19,85,84,87",
"4,Erin,Black,[email protected],22,91,98,82",
"5,Adan,Ramirez,[email protected],23,100,100,100"
};
ArrayList<Integer> grades = new ArrayList<Integer>();
for (int i = 0; i < kaizer.length; i++) {
String s = kaizer[i]; //volatile reference
String[] parts = s.split(",");
//volatile reference
String id = parts[0];
String name = parts[1];
String lastname = parts[2];
String email = parts[3];
String age = parts[4];
grades.add(Integer.parseInt(parts[5]));
grades.add(Integer.parseInt(parts[6]));
grades.add(Integer.parseInt(parts[7]));
//Widget w = new Widget(id, name, num);
//mywidgets.add(w);
}
应该这样打印子字符串集:
887959
917285
858487
919882
100100100
System.out.println(grades.get(0));
System.out.println(grades.get(1));
System.out.println(grades.get(2));
System.out.println(grades.get(3));
System.out.println(grades.get(4));
而是...它打印:
8879599172
问题出在输出:'8879599172'
grades
就ArrayList
其而言,您只是向其中添加了整数。它不知道什么时候应该打破。索引3
只是Integer
后索引2
。如果要将每个值合并为合并值,则可以执行此操作grades.add(Integer.parseInt(parts[5]+parts[6]+parts[7]))
,也可以在将每个3个值添加到中后插入一个换行符grades
。你也可以做出grades
一个List
与每一个是子列表List
类型Integer
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句