
本文将介绍如何在Java程序中检测用户输入的字符串是否以特定字符(例如`.`)开头,并判断其是否为有效命令。如果用户输入以该字符开头但不是预定义的有效命令,则程序会提示用户输入无效,并建议查看帮助信息。本文将提供代码示例,并讨论不同实现方式的优缺点。
在开发命令行应用程序时,经常需要处理用户输入的命令。一种常见的模式是使用特定字符(例如.)作为命令的前缀。本文将探讨如何检测用户输入的字符串是否以该字符开头,并根据其是否为有效命令来采取不同的操作。
一种简单有效的方法是使用 switch 语句。这种方法适用于命令数量有限且已知的情况。
import java.util.Scanner;
public class CommandProcessor {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (true) {
System.out.print("Enter command: ");
String userInput = scan.nextLine();
switch (userInput) {
case ".help":
System.out.println("Available commands: .help, .ping");
break;
case ".ping":
System.out.println("Pong!");
break;
default:
if (userInput.startsWith(".")) {
System.out.println("Invalid command. Type .help for a list of commands.");
} else {
System.out.println("Unrecognized input.");
}
}
}
}
}代码解释:
立即学习“Java免费学习笔记(深入)”;
优点:
缺点:
另一种方法是使用 if-else if-else 语句。这种方法与 switch 语句类似,但更灵活。
import java.util.Scanner;
public class CommandProcessor {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (true) {
System.out.print("Enter command: ");
String userInput = scan.nextLine();
if (userInput.equals(".help")) {
System.out.println("Available commands: .help, .ping");
} else if (userInput.equals(".ping")) {
System.out.println("Pong!");
} else if (userInput.startsWith(".")) {
System.out.println("Invalid command. Type .help for a list of commands.");
} else {
System.out.println("Unrecognized input.");
}
}
}
}代码解释:
立即学习“Java免费学习笔记(深入)”;
这段代码与使用 switch 语句的示例功能相同,只是使用了 if-else if-else 结构来判断用户输入的命令。
优点:
缺点:
为了解决 switch 语句和 if-else if-else 语句难以维护和扩展的问题,可以使用 Map 来存储命令和对应的操作。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.function.Consumer;
public class CommandProcessor {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Map<String, Consumer<String>> commands = new HashMap<>();
commands.put(".help", (input) -> System.out.println("Available commands: .help, .ping"));
commands.put(".ping", (input) -> System.out.println("Pong!"));
while (true) {
System.out.print("Enter command: ");
String userInput = scan.nextLine();
if (commands.containsKey(userInput)) {
commands.get(userInput).accept(userInput);
} else if (userInput.startsWith(".")) {
System.out.println("Invalid command. Type .help for a list of commands.");
} else {
System.out.println("Unrecognized input.");
}
}
}
}代码解释:
立即学习“Java免费学习笔记(深入)”;
优点:
缺点:
本文介绍了三种在 Java 中检测以特定字符开头的字符串并进行处理的方法:使用 switch 语句、使用 if-else if-else 语句和使用 Map 存储命令和对应的操作。可以根据实际情况选择最适合的方法。如果命令数量有限且已知,可以使用 switch 语句或 if-else if-else 语句。如果命令数量很多,或者需要动态添加或删除命令,建议使用 Map 来存储命令和对应的操作。在使用Map时,可以使用java.util.function.Consumer接口来定义命令执行的具体动作,使代码更加简洁和易于维护。
以上就是如何在Java中检测以特定字符开头的字符串并进行处理的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号