用Java复制另一个数组的一部分

时间:2014-11-17 18:27:01

标签: java arrays

我是Java的新手,我有一个简单的问题。

我有一个名为studentInfo [0]的数组,我是从String studentInfo[] = line.split(",");创建的。我想从它的第一个索引创建另一个数组。

换句话说。我有数组studentInfo,让我们说这样: “A,B,C,d,
A1,B1,C1,D1, a2,b2,d2,c2等...“ 我想要另一个数组,它在我的另一个数组中占用所有“a”。示例:“a,a1,a2等......”

我该怎么做?

我已经尝试System.arraycopy(studentInfo, 0, array, 0, studentInfo.length);但似乎没有用,因为它不只是给我第一个索引。

FYI我的代码是在while循环中,每次循环都会循环。见下文:

 while ((line = reader.readLine()) != null) {
            String studentInfo[] = line.split(",");
            String array[] = new String[0];
      }

谢谢!

3 个答案:

答案 0 :(得分:1)

假设你有这个数组,

studentInfo = ["a","b","c","d","a1","b1","c1","d1", "a2","b2","d2","c2"]

你想要另一个像

这样的数组
studentInfoWithA = ["a", "a1", "a2"]

然后

    String studentInfo[] = new String[] { "a", "b", "c", "d", "a1", "b1", "c1", "d1", "a2", "b2", "d2", "c2" };

    List<String> newList = new ArrayList<String>();
    for (String info : studentInfo) {
        if (info.startsWith("a")) {
            newList.add(info);
        }
    }

    String[] studentInfoWithA = newList.toArray(new String[0]);

答案 1 :(得分:1)

我会做类似的事情。

String[] studentInfoA = new String[50] //You can put the size you want.

    for(int i=0; i<studentInfo.length-1; i++){
        if(studentInfo[i].substring(0,1).equals("a")){
           studentInfoA[i]=studentInfo[i];
        }
    }

我会更好地推荐Vimsha的答案但是因为你正在学习我并不想让你在收藏等方面遇到困难,或者至少我不希望你在没有正确了解数组和循环的情况下使用它们。

答案 2 :(得分:0)

在java 1.8中,过滤看起来像

String[] result = Arrays.stream(new String[] { "a","b","c","d","a1","b1","c1","d1", "a2","b2","d2","c2" })
    .filter(e -> e.startsWith("a"))
    .toArray(String[]::new);