发布网友 发布时间:2022-04-21 15:38
共2个回答
热心网友 时间:2023-07-01 09:01
自定义类MyNumber:
import java.util.ArrayList;
import java.util.List;
public class MyNumber {
public int[] delZero(int[] arr){
int[] newArr = new int[arr.length];
for (int i=0; i<arr.length; i++){
//删除所有含0的元素(0,10,20......)
// if (arr[i] == 0 && arr[i]%10 == 0){
//删除所有为0的元素
if (arr[i] == 0){
arr = delAnyPosition(arr,i);
}
}
return arr;
}
public static int[] delAnyPosition(int[] arr,int position){
//判断是否合法
if(position >= arr.length || position < 0){
return null;
}
int[] res = new int[arr.length - 1];
for(int i = 0;i<res.length;i++){
if(i < position){
res[i] = arr[i];
}else{
res[i] = arr[i + 1];
}
}
return res;
}
}
追答主类:
public static void main(String[] args){
MyNumber number = new MyNumber();
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组长度:");
int length = scanner.nextInt();
int[] arr = new int[length];
for (int i=1; i<=length; i++){
System.out.print("请输入第" + i + "个元素的值(整型):");
arr[i-1] = scanner.nextInt();
}
arr = number.delZero(arr);
System.out.print("删除所有不含0的元素后数组为:[");
for (int j=0; j<arr.length; j++){
if (j == arr.length -1){
System.out.print(arr[j]);
}else {
System.out.print(arr[j] + ",");
}
}
System.out.print("]");
}
热心网友 时间:2023-07-01 09:01
import java.util.ArrayList;追答我看题目上的要求是:“将一个整型数组中不为0的元素剔除掉”。
不为0的元素不要,那么剩下的应该就是等于0的元素。
这个题是要求将0元素剔除,是吗?
下面是我将“elements_remove”方法修改后的代码。
public int[] elements_remove(int[] intArray) {
List listRemoveAfter = new ArrayList();
for (int num : intArray) {
if (num != 0) {
listRemoveAfter.add(Integer.valueOf(num));
} else {
continue;
}
}
Object[] objArray = listRemoveAfter.toArray();
int[] removerAfterArray = new int[objArray.length];
for (int i = 0; i < objArray.length; i++) {
removerAfterArray[i] = (int)objArray[i];
}
return removerAfterArray;
}
麻烦您再试一下,看看是否符合要求。