假设我想获取用户在输入中键入的“of”
我正在制作一个应用程序,而不是在这个愚蠢的输出屏幕中完成(这只是一个示例)
import java.util.*;
Scanner input = new Scanner(System.in);
String text = input.nextLine();
int check = 0;
for(int i = 0; i < text.length(); i++;){
if(text.substring(i, i + 2) .equals("of")){
check = 0;
}
}
如果用户输入 abofd
,它肯定会识别位置 2-4 处的 of。
但是当 i
值为 4 时,它会检查 4-6 中的位置,但由于位置 6 不存在,因此会给出错误。
我知道你在想我设置i < text.length() - 1
在第 5 行,但我的原始代码需要运行到最后!
最佳答案
验证来自用户的输入始终是一个好主意,但你让事情变得过于复杂了!更糟糕的是,您写下了完全错误代码:
String text = input.nextLine();
int check = 0;
for(int i = 0; i < text.length(); i++;){
if(text.substring(i, i + 2) .equals("of")){
以上无法工作!您会看到,i 从 0 迭代到文本 LENGTH。但随后您使用 i+2 从文本中获取子字符串。 (所以:向您的第一个 ArrayIndexOutOfBoundsException 打个招呼)。
相反,您可以执行以下操作:
if (text.contains("of")) {
或
if (text.indexOf("of") >= 0) {
查明您的字符串是否包含“of”。
并回答标题中的问题:绝对是的。编程在很大程度上就是成为一名优秀的工匠。优秀的工匠会保持所有工具和 Material 井然有序。他不允许困惑、浪费……
所以,长话短说:从第一天,到永远:在编写代码时,您努力追求零容忍政策:没有编译器错误,没有警告,你的代码中没有任何东西不属于那里!
关于java - 即使我的代码按我想要的方式工作,是否有必要解决 Netbeans IDE 输出窗口中显示的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40439786/