我有一个以这种方式保存值的字符串数组。 [vi,26,纽约,退休] [ji,27,manhattan,退休] [ti,28,曼哈顿,工作]等等
我将字符串数组转换为数组列表,我给了arr.get(1)
,它给了我26
,27
,28
这样的值。
我希望以一种方式迭代字段,它应该采用vi,26,纽约,在第一次迭代中退役,ji,27,曼哈顿,在第二次迭代中退役等等。所以我可以根据每次迭代的索引得到值。让我们说arr.get(0)
给我vi,arr.get(1)
给我27 n等等
其中count是文件中的行数,在本例中为3,文件最初是用管道分隔的
for (int i = 0; i < count; i++) {
int len = arr.get(i).length();
String[] s = arr.get(i).toString().split("\\|");
List<String> wordList = Arrays.asList(s);
System.out.println(wordList.get(1));
}
当我给wordList.get(1)
时。我得到输出26,27,28
答案 0 :(得分:0)
问题是您每次都在迭代每个字符串数组并更新CustomerName SalesmanName
Peter Charlie
Vlado Clint
Landon Tim
Armand
变量。然后输出原始s
的特定索引(这是一个ArrayList吗?)。我建议你创建一个变量来保存循环外的Lists对象:
arr
然后,您可以从此列表列表对象中获取每个对象:
List<List<String>> container;
for (int i = 0; i < count; i++)
{
int len = arr.get(i).length();
String[] s = arr.get(i).toString().split("\\|");
List<String> wordList = Arrays.asList(s);
container.add(wordList);
}
这是假设您的代码没有其他问题。我觉得并不是所有的代码都呈现出来。无论如何,方法都是一样的。
答案 1 :(得分:0)
您将获得多个输出,因为您在三个迭代中的每个迭代中打印列表中的第二个元素。也许你正在寻找这样的东西?
List<String>[] wordListArray = new List<String>[count];
for (int i = 0; i < count; i++) {
int len = arr.get(i).length();
String[] s = arr.get(i).toString().split("\\|");
List<String> wordList = Arrays.asList(s);
wordListArray[i] = wordList;
System.out.println(wordListArray[0].get(1)); //where zero returns the first word list (which has 26)
答案 2 :(得分:0)
首先将String Array转换为Array List。然后你可以通过索引找到元素。请参考以下代码。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class BookFine {
public static void main(String[] args) {
String s1[]=new String[]{"vi" , "26" , "new york" , "retired"};
String s2[]=new String[]{"ji", "27" , "manhattan" , "retired"};
String s3[]=new String[]{"ti", "28" , "manhattan" , "working"};
List<String> wordList = new ArrayList<String>();
Collections.addAll(wordList, s1);
Collections.addAll(wordList, s2);
Collections.addAll(wordList, s3);
System.out.println(wordList.get(1));
}
}
答案 3 :(得分:0)
您可以通过构建自定义对象并覆盖其toString()
方法
1.构建自定义对象类并覆盖其toString()
方法,如下所示:
public class ComplexObject{
private String col1;
private int col2;
private String col3;
private String col4;
public ComplexObject(String x, int w, String y, String z)
{
this.col1 = x;
this.col2 = w;
this.col3 = y;
this.col4 = z;
}
//Be sure to override the toString() method because this override is responsible to show your interested values
public String toString()
{
return Integer.toString(this.col2);
}
}
使用ArrayList添加该类的对象,这里我已经为您测试了它:
公共类TestClass { public static void main(String []){
ArrayList<ComplexObject> arr = new ArrayList<ComplexObject>();
arr.add(new ComplexObject("vi", 26, "new york", "retired"));
arr.add(new ComplexObject("ji", 27, "manhatan", "retired"));
arr.add(new ComplexObject("ti", 28, "manhatan", "retired"));
for(int i =0; i<arr.size(); i++)
{
System.out.println(arr.get(i));
}
}
}
它会给你 26 27 28