所以我有一串字符,我想在for循环中循环。当我到达某个通过布尔检查的char时,我想在该点之后取出列表中的每个项目并从那里切断。如下所示:
for (int i = 0; i < charList.length; i++)
{ if (charList[i] == "a")
{
//put every char in charList between i and the end into a new variable
}
}
有什么方法可以做到这一点?推荐哪些?
答案 0 :(得分:3)
Arrays集合有一个copyOfRange()方法
for (int i = 0; i < charList.length; i++)
{ if (charList[i] == 'a')
{
char[] newCharList = Arrays.copyOfRange(charList,i,charList.length);//put every char in charList between i and the end into a new variable
//do stuff
break;
}
}
如果你需要在for循环之外访问新数组,请确保在输入之前声明它,即
char[] newCharList;
for(...
答案 1 :(得分:1)
在if
中,创建一个新的char[]
,然后将字符放入其中。
char[] substr = new char[charList.length-i];
for (int j = 0; j < charList.length-i; j++) {
substr[j] = charList[i+j];
}
break; // out of the loop over i
我写了break
但您可能会return
,或者您会在此范围之外声明substr
。我写的代码只是为了给你一个想法。
我为此做了一个简单的ideone,所以你可以看到它正常工作。
答案 2 :(得分:0)
使用copyOfRange()方法:
char[] charListCopy = Arrays.copyOfRange(charList, i, charList.size());