作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试模拟终端/文件系统。现在我正在解析和标记命令。
我正在尝试确定什么被视为有效命令。我的策略是检查输入数组中的索引 2 元素是否是字符串“empty”以外的任何内容。如果是,我的 checkValidCommand
方法将返回 false。
当前,当我运行程序并在输入中输入 "hi"
时,出现此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at fileSystem2.MainActivity.checkValidCommand(MainActivity.java:43)
at fileSystem2.MainActivity.main(MainActivity.java:66)
我相信此问题是由于我的 String[] 输入
仅包含 3 个元素造成的。
代码:
检查有效输入。
private static boolean checkValidCommand(String[] commandTokens) {
//boolean valid = false;
if (commandTokens[0].equals("exit")) {
return true;
}
else if (!commandTokens[2].equals("empty")) {
return false;
}
return true;
}
解析命令的代码
String[] input = new String[3];
for (int i = 0; i < input.length; i++) {
input[i] = "empty";
}
while(!input[0].equals("exit")) {
Scanner sc = new Scanner(System.in);
input = sc.nextLine().split(" ");
if (checkValidCommand(input)) {
System.out.print("Invalid Command!");
continue;
}
System.out.println(input.length);
switch(input[0]) {
// vi
case "vi":
System.out.println("hi");
break;
// ls
case "ls":
break;
// mkdir
case "mkdir":
break;
// pwd
case "pwd":
break;
}
}
最佳答案
命令
input = sc.nextLine().split(" ");
是否不用数据填充现有数组(由input
引用)。
它创建一个新数组并将其引用分配给input
。
无论input
指向什么,都会被取消引用并成为垃圾收集的对象。
关于java - 具有设定数量元素的 ArrayIndexOutOfBoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445986/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!