如何转换字符串数组

时间:2016-06-17 18:37:24

标签: java arrays

我有一个以这种方式保存值的字符串数组。 [vi,26,纽约,退休] [ji,27,manhattan,退休] [ti,28,曼哈顿,工作]等等

我将字符串数组转换为数组列表,我给了arr.get(1),它给了我262728这样的值。

我希望以一种方式迭代字段,它应该采用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

4 个答案:

答案 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);
    }
 }
  1. 使用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));
            }
        }
    }
    
  2. 它会给你 26 27 28

相关问题