Java键盘录入后进行判断比较

本文介绍了一个简单的Java程序案例,该程序通过键盘输入一个字符串,并使用条件判断检查输入是否为yes。文章详细展示了如何正确地进行字符串比较,并提供了一段示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说一下想实现的功能:键盘输入一个字符串,下一步判断输入的是否=我想要的,若等于就输出什么什么的。

一开始我这样写:

import java.util.Scanner;
public class lianjie {

	public static void main(String[] args){
		System.out.println("是否进行插入?");
		Scanner scanner =new Scanner(System.in);
		String shifou = scanner.nextLine();
		if (shifou=="yes") {
			System.out.println("现在进行SQL插入");
                } 
	}
}
发现,根本不进if里去,那肯定就是它认为 
shifou!=yes
打印一下,shifou的确赋值为"yes”.所以一个是
//这里应该是没有识别成字符串“yes”。
这里的判断,我们可以改成:
if (shifou.trim().equals("yes")) {
            System.out.println("现在进行SQL插入");
}
就可以判断值是不是为yes,这样就可以打印出:现在进行SQL插入了。

### Java判断键盘输入数据类型的实现 在 Java 中,可以通过 `java.util.Scanner` 类来捕获用户的键盘输入,并通过不同的方法来检测输入的数据类型。以下是具体的方法说明: #### 使用 `hasNextXXX()` 方法族 `Scanner` 提供了一系列的 `hasNextXXX()` 方法用于测试下一个令牌是否属于某种特定类型。这些方法不会消耗任何输入,仅返回布尔值表示匹配情况。 例如: - `hasNextInt()` 测试下一次输入是否为整数[^2]。 - `hasNextDouble()` 测试下一次输入是否为双精度浮点数。 - `hasNextBoolean()` 测试下一次输入是否为布尔值。 ```java import java.util.Scanner; public class InputTypeChecker { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入任意内容:"); if (scanner.hasNextInt()) { // 判断是否为整数 int intValue = scanner.nextInt(); System.out.println("您输入了一个整数值:" + intValue); } else if (scanner.hasNextDouble()) { // 判断是否为双精度浮点数 double doubleValue = scanner.nextDouble(); System.out.println("您输入了一个双精度浮点数值:" + doubleValue); } else if (scanner.hasNextBoolean()) { // 判断是否为布尔值 boolean boolValue = scanner.nextBoolean(); System.out.println("您输入了一个布尔值:" + boolValue); } else { // 默认处理其他类型 String stringValue = scanner.next(); System.out.println("您输入的内容不属于上述类型:" + stringValue); } scanner.close(); } } ``` 以上代码展示了如何利用多个条件分支逐一验证输入的不同可能性。 #### 将输入保存为字符串并解析 如果无法提前确定输入的具体类型,则可以先将其作为字符串读入,再尝试转换为目标类型。这种方法通常结合异常处理机制完成。 示例代码如下: ```java import java.util.InputMismatchException; import java.util.Scanner; public class TypeConversionExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); try { System.out.println("请输入一个可能的数字:"); String rawInput = scanner.nextLine(); Integer.parseInt(rawInput); // 如果成功则证明是合法整型 System.out.println("这是一个有效的整数!"); } catch (NumberFormatException e) { try { Double.parseDouble(scanner.nextLine()); // 继续检查是否能转成double System.out.println("这不是有效整数,但它是一个有效的浮点数!"); } catch (NumberFormatException ex) { System.out.println("这既不是一个有效的整数也不是浮点数!"); } } scanner.close(); } } ``` 此方式更加灵活但也更复杂一些[^4]。 #### 总结 无论是直接调用对应的 `hasNextXxx()` 函数还是先把所有输入当作字符串看待之后再做进一步分析都各有优劣之处。前者效率较高但功能有限;后者虽然增加了编程难度却也提供了更大的自由度去应对各种特殊情况下的需求[^1][^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值