【问题标题】:Getting non-initial argument User input in a java program from command prompt从命令提示符获取 Java 程序中的非初始参数用户输入
【发布时间】:2015-11-24 05:40:12
【问题描述】:

我正在编写一个必须通过命令行运行的程序。它具有作为参数的初始输入 (java filename arg arg arg),但随后需要输入更多信息。我尝试使用基本扫描仪和.nextLine(),但字符串实际上永远不会被扫描仪拾取,按 Enter 只会将我移至下一行。

我可以为此使用扫描仪还是必须使用不同的东西?

编辑:这是我正在使用的代码部分(请注意我也导入了正确的库):

    Scanner in = new Scanner(System.in);
    boolean cont = true;
    while(cont)
    {
        int indx;
        System.out.print("Enter input: ");
        String searched = in.nextLine();
        if(searched.equals("esc"))
        {
            cont = false;
            continue;
        }
        else
            indx = binSearch(sorted,searched);
        if(indx != -1)
            System.out.println("'" + searched + "'" +
                               " was found at index: " +
                               indx);
        else
            System.out.println("'" + searched + "'" +
                               "was not found");
    }
    in.close();

    }

编辑 2:将 2 个字符串的 == 比较更改为 .equals

编辑 3:添加了我正在使用的 binSearch 方法:

    public static int binSearch(String[] A, String word)
    { 
    int i = 0; int j = A.length; int m;
    while( i < j )
    {
            m = (i + j)/2;//find centerpoint
            if(cSL(word,A[m]))
                    j = m;//move right side up
            else i = m;//move left side up
    }
    if(A[i].equalsIgnoreCase(word)) return i;
    else if(A[j].equalsIgnoreCase(word)) return j;
    else return -1;
    }

编辑 4:所以我猜它一定是 UNIX,一切都在 cmd 中运行。

【问题讨论】:

  • 是的,您可以为此使用扫描仪
  • 是的,但请您向我们展示您的代码,以便我们提供更多帮助。
  • @Leah 我在我正在使用的代码中添加了与问题相关的代码。
  • 不是比较字符串是否相等的正确方法。搜索“如何在 java 中比较字符串” - 每天被询问 15 次。
  • @ChiefTwoPencils 是的,很抱歉我不得不从另一台计算机重新输入代码,结果弄混了。之后我有一个“else”,它会触发另一个事件,而那个事件没有触发,所以我认为这不是问题。

标签: java command java.util.scanner


【解决方案1】:

您可以将字符串与 .equals 方法进行比较。这一定是问题所在。试试这个方法:

if(searched.equals("esc")) {
        cont = false;
}

【讨论】:

  • 我试过了,并没有解决问题。不过,我将不得不解决这个问题。
  • 您的意思是还有其他的如果您没有改变?事实上,这是您可以比较字符串的方式。否则它将无法正常工作。
  • 我直截了当地说,一旦我意识到它不起作用,我会在以后更改它。这是我唯一的字符串比较
猜你喜欢
  • 2017-03-12
  • 2013-02-08
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2014-01-06
  • 2010-09-09
相关资源
最近更新 更多