我是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];
}
谢谢!
答案 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);