我正在研究 Java 程序
这是程序问题:考虑 Java 程序。它从标准输入中读取整数(直到它得到一个负数)并将它们放入一个数组中。之后它在数组上调用 processArray,然后在标准输出上打印数组的内容。在程序中,数组中任何两个或多个连续奇数的序列都会从数组中移除,并替换为代表该序列长度的单个数字。processArray 函数/方法应该就地修改数组(最好不要创建新数组),并且它应该返回修改后数组的新长度。
例如,如果这些数字是在标准输入中提供的:
222
3
35
62
124
61
29
375
66
7
-1
然后程序应该打印:
222
2
62
124
3
66
7
请注意,序列 3、35 已被 2 替换,而序列 61、29、375 已被 3 替换。
这是我的代码:
import java.util.*;
import java.io.*;
public class Main {
public static int processArray(ArrayList<Integer> array) {
ListIterator<Integer>iterator=array.listIterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
int count=0;
if (integer%2!=0) {
count=count++;
iterator.remove();
continue;
}
if(integer==-1)
break;
else
iterator.previous();
iterator.add(count);
iterator.next();
}
return array.size();
}
public static void main (String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
while(in.hasNextInt()) {
int num = in.nextInt();
if (num < 0)
break;
arrayList.add(new Integer(num));
}
int new_length = processArray(arrayList);
for(int i=0; i<new_length; i++)
System.out.println(arrayList.get(i));
}
}
我的逻辑无法正常工作有助于提高逻辑
繁星点点滴滴
白衣染霜花
子衿沉夜
相关分类