我在尝试使用
substring
方法来查找字符串变量中的特定字符时遇到问题。目前,我已经设置了一个 for 循环来迭代名为 name
的字符串变量的长度。在此循环中,我在 if 语句中使用 substring
方法来搜索由“.”表示的特定字符。
然而,尽管我付出了努力,我还是无法达到预期的结果。对于解决此问题的任何帮助,我将不胜感激。这是我的代码的相关部分:
System.out.println("\nEnter name: ");
String name = in.nextLine();
int length = name.length();
for (int x = 0; x < length; x++) {
if(name.substring(x, x + 1).equals(".")) {
System.out.println("Error! - name cannot contain (.) values\n"
+ "***************************************************");
System.out.println("\nWould you like to capture another name?" +
"\nEnter (1) to continue or any other key to exit");
String opt1 = in.nextLine();
// If statement to restart the application
if (opt1.equals("1")) {
System.out.println("menu launch");
} else {
System.exit(0);
}
} else {
break;
}
}
如果您能了解我的方法为何未按预期工作以及如何纠正它,我将不胜感激。预先感谢您的协助!
虽然 Mureinik 在实现目标的最佳方法上是正确的,但你的函数不起作用的原因是你的
else { break; }
声明。
break
终止循环,因此除非第一个字符是 .
,否则循环将在第一次迭代后立即退出。当您想要增加循环时,正确的关键字是 continue
,尽管在这种情况下没有必要,因为所有逻辑都包含在 if 语句内。由于没有其他逻辑需要避免,因此您应该删除 else 语句。