【问题标题】:Inaccurate for loop in Java arrayJava数组中的for循环不准确
【发布时间】:2023-03-26 22:18:01
【问题描述】:

我已经尝试了很多小时来解决数组任务,但在我看来我被困住了。任务是创建一个程序,打印给定命令行参数的数量并列出它们。

You gave 2 command line parameters.
Below are the given parameters:
1. parameter: 3455
2. parameter: John_Smith

我的程序从错误的索引开始 + 我不确定给定的任务。如果尚未初始化,程序如何知道要使用多少个参数?或者我只是完全迷失了这个练习?

这就是我所做的:

    import java.util.Scanner;

public class ex_01 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner reader = new Scanner(System.in);

        int param = reader.nextInt();

        String[] matrix = new String[param];

        for (int i = 0; i < matrix.length; i++) {

            matrix[i] = reader.nextLine();// This is the part where my loop fails

        }

        System.out.println("You gave " + matrix.length
                + " command line parameters.\nBelow are the given parameters:");
        for (int i = 0; i < matrix.length; i++) {

            System.out.println(i + 1 + " parameter: " + matrix[i]);
        }

    }

}

还有我自己的输出:

3   //This is the number of how many parameters the user wants to input
2   // Where is the third one?
omg // 
You gave 3 command line parameters.
Below are the given parameters:
1 parameter: 
2 parameter: 2
3 parameter: omg

编辑:

我做到了!我做的!!经过更多谷歌搜索后,我发现了这个:

        if (args.length == 0) {
        System.out.println("no arguments were given.");
    } else {
        for (String a : args) {

        }
    }

然后我只是修改了程序并编译了程序。这是整个程序:

import java.util.Scanner;

public class Echo {


    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("no arguments were given.");
        } else {
            for (String a : args) {

            }
        }

        System.out.println("You gave " + args.length
                + " command line parameters.\nBelow are the given parameters:");
        for (int i = 0; i < args.length; i++) {

            System.out.println(i + 1 + ". parameter: " + args[i]);
       }

        }

    }

我要感谢所有回答此问题的人,真的需要帮助! :)

【问题讨论】:

  • 你应该使用内置的 args 数组吗?
  • 绝对! :D 嘿,谢谢!

标签: java arrays for-loop


【解决方案1】:

命令行参数不是程序使用Scanner 等读取的文本,它们是在作为main 参数的args 数组中指定的字符串。似乎您需要输出该数组的内容,而不是读取输入并输出它。

【讨论】:

  • 你为什么要替别人做作业?如果有人只是给你答案,这不是学习的好方法。
  • 是的,但他似乎对“命令行参数”是什么感到困惑。我将删除我的代码并留下指导。
  • 顺便问一下,你们知道学习 Java 的最佳方法是什么吗?我尝试了各种 MOOC,阅读了 20 多本 Java 书籍,但似乎这些书籍并没有真正帮助我理解 Java 的基础知识。
  • @Javan00b 编程和阅读代码。没有捷径可走,20本书听起来太多了。您可以从书本中学到的东西只有这么多。
  • 我会说这是一个单独的问题,但它可能会因为“主要基于意见”而被搁置。我是从excellent tutorial学习java的,然后去当地图书馆的图书分类仓库,在那儿弄了几本java书。
【解决方案2】:

我认为您混淆了命令行参数的含义。命令行参数是程序运行时传递给main方法的参数,而System.in是在程序运行时在命令行捕获用户输入。

命令行参数在args参数中传递给main方法,例如:

java MyClass one two three

会将数组["one", "two", "three"] 作为args 参数传递给main 方法。

然后您所要做的就是使用args 数组来打印您需要的数据信息。

【讨论】:

  • 如果可以的话,我也会接受这个作为答案,谢谢! :)
猜你喜欢
  • 2012-03-24
  • 1970-01-01
  • 2015-09-22
  • 2020-05-12
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
相关资源
最近更新 更多