如何在java中编写命令行参数,以及如何将字符串转换为int
您当前的代码显示了您的努力,在正确的轨道上,并且实际上包含了实际获得工作解决方案所需的所有部分。我重构了countPositive方法以直接接受命令行参数的字符串数组。请注意,没有理由创建整数数组;您可以简单地解析每个命令行参数并动态分析它如何在java中编写命令行参数,以及如何将字符串转换为int,java,Java,您当前的代码显示了您的努力,在正确的轨道上,并且实际上包含了实际获得工作解决方案所需的所有部分。我重构了countPositive方法以直接接受命令行参数的字符串数组。请注意,没有理由创建整数数组;您可以简单地解析每个命令行参数并动态分析它 > java count 1 2 3 4 5 -1 -2 -3 5 > java count 0 -1 -2 -3 -3 -4 0 您有两种选择-要么添加第二个数组,要么动态计算正数 > java count 1 2 3 4
> java count 1 2 3 4 5 -1 -2 -3
5
> java count 0 -1 -2 -3 -3 -4
0
您有两种选择-要么添加第二个数组,要么动态计算正数
> java count 1 2 3 4 5 -1 -2 -3
5
> java count 0 -1 -2 -3 -3 -4
0
第一种解决方案-首先将字符串转换为整数,然后计算正整数:
public class count {
private static int countPositive(String[] elems) {
int positive = 0;
for (int i=0; i < elems.length; i++) {
int element = Integer.parseInt(elems[i]);
if (element > 0) {
positive++;
}
}
return positive;
}
public static void main(String[] args) {
int count = countPositive(args);
System.out.println(count));
}
}
您可以从将字符串[]args复制到int[]开始,然后使用它调用countPositive。像
那么错误或问题是什么呢?我是否必须添加另一个数组来保存这些整数,然后调用countPositive?是的。这比添加一个新的int数组要好+1.
public class count {
private static int countPositive(int[] elems) {
int positive = 0;
for (int i = 0; i < elems.length; i++) {
if (elems[i] > 0) {
positive++;
}
}
return positive;
}
public static void main(String[] args) {
int[] intArr = new int[args.length];
for (int i = 0; i < args.length; i++) {
intArr[i] = Integer.parseInt(args[i]);
}
System.out.println(countPositive(intArr));
}
}
public class count {
public static void main(String[] args) {
int positive = 0;
for (int i = 0; i < args.length; i++) {
if (Integer.parseInt(args[i]) > 0) {
positive++;
}
}
System.out.println(positive);
}
}
public class count {
public static void main(String[] args) {
System.out.println(Arrays.stream(args).mapToInt(i -> Integer.parseInt(i)).filter(i -> i>0).count());
}
}
public static void main(String[] args) {
int[] values = new int[args.length];
for (int i = 0; i < args.length; i++) {
values[i] = Integer.parseInt(args[i]);
}
System.out.println(countPositive(values));
}
System.out.println(Stream.of(args).mapToInt(Integer::parseInt)
.filter(val -> val > 0).count());