如何在java中剪切数组的一部分
我必须用java编写一个方法,其中输入一个数字数组“a”和一个数字“x”,返回一个元素数组,该数组位于“a”中最后一个字母“x”之后。例如 对于输入{0,1,2,3,4,5,6,7,8,9}和x=6,方法必须返回{7,8,9},同时对于{4,1,4,2}和x=4,方法必须返回{2},如果x不在“a”中,则必须返回空数组{}(或长度为0的数组)
到目前为止,我们还没有研究类或对象。这里是我们到目前为止制作的另一个程序的示例
boolean arrayIncluso( int[] s,int[] t ) {
boolean flag=true;
for(int i=0;i< s.length;i++){
int c1 = 0 ;
int c2 = 0 ;
for(int j=0;j< s.length;j++){
if(s[i] == s[j]){
c1 ++;
}
}
for(int j=0;j< t.length;j++){
if(s[i] == t[j]){
c2 ++;
}
}
if(c1 > c2)
flag= false;
}
return flag;
}
谁能给我解释一下吗 为什么会这样
t[i-idx-1 ] = s[i];
而不是这个
for(int j=0;j<t.length;j++){
t[j]=a[i];
}
return t;
# 1 楼答案
使用列表:
您可以使用
Arrays
从阵列构建列表:所有这些加在一起将产生如下代码:
# 2 楼答案
这里有一个通用算法:(您必须自己编写)
不要忘记检查是否没有发生以及最后一次发生是否为数组末尾
# 3 楼答案
您可以将问题分为两部分:
查找字符
x
的最后一个索引。这可以使用easy for循环来完成找到此索引后,从该元素开始创建一个新数组。可以使用第二个(非嵌套)for循环完成,也可以使用Arrays.copyOfRange()
或
# 4 楼答案
您可以使用commons lang库来确定使用ArrayUtils方法的数组元素的最后一个索引。lastIndexOf,这样它就变成了一行: