java - 尝试仅在此数组方法中打印特定数字
问题描述
出于某种原因,我只管理了打印奇数,但它仍然以某种方式打印看似为空的值。我试图只打印返回为奇数的值。
public class Odd {
public int[] removeEvens(int [] nums) { //start of method
int [] newArray = new int[nums.length];
int count = 0;
// start of array conversion
for(int i = 0; i < nums.length; i++) {
newArray[count] = nums[i];
count++;
}
int counter = 0;
for (int i = 0; i < nums.length; i++)
if (newArray[i] % 2 == 1)
newArray[counter++] = newArray[i];
for (int i=counter; i < nums.length; i++)
newArray[i] = 0;
return newArray;
}
// end of method
public static void main(String[] args) {
Odd labObject = new Odd();
int [] input = {1,2,3,4,5,6,7,8,9};
int [] result = labObject.removeEvens(input);
// Helper method Arrays.toString() converts int[] to a String
System.out.println(Arrays.toString(result)); // Should print [1, 3, 5, 7, 9]
}
}
解决方案
将其更改为return Arrays.copyOfRange(newArray, 0, counter);
当您在 java 中创建具有指定大小的整数数组时,它将数组中的每个值设置为 0。这样做将在最后删除所有无关的 0。
推荐阅读
- ruby-on-rails - 升级 Bitnami Redmine 时迁移失败
- swagger - 来自 Swagger API 定义的 NestJS 代码生成
- github - 许多 Github 站点的图像未显示(内容安全策略)
- python - jinja2 部分转义 {% and '
- logstash - 使用 logstash 日期过滤器插件匹配多种日期格式
- java - 处理异常后返回程序中的特定位置
- python - 如何用带注释的句子更新 VADER 词典?
- android - 评估根项目“user-auth-retrofit”时出现问题
- r - 我的 CSV 数据在经过这么多行后通过 read.table 读入 R 时,停止创建新行并用“,”分隔值
- sql - 将日期范围转换为多行