【发布时间】: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