gpt4 book ai didi

java - 检测字符串变量中的数字(在 Java 中)

转载 作者:行者123 更新时间:2023-12-01 14:05:53 25 4
gpt4 key购买 nike

因此,通常为了检测用户输入,我使用 int 和 double 变量类型。

示例:

    Scanner in = new Scanner(System.in);
int selection;
System.out.println("Welcome to RPG! (prototype name)\nIn this game, you do stuff.\nChoose a class:\n1. Soldier\n2. Knight\n3. Paladin\n4. Heavy");
selection = in.nextInt();
if(selection == 1){
System.out.print("you are a soldier");
}
else{
System.out.print(selection);
}
}

这种技术通常对我来说效果很好,但我注意到如果用户在 int 变量中输入一个字母,游戏就会崩溃,因为整数不能存储字母。 (对吗?)所以我尝试在其位置使用字符串变量,如下所示:

    Scanner in = new Scanner(System.in);
String selection;
System.out.println("Welcome to RPG! (prototype name)\nIn this game, you do stuff.\nChoose a class:\n1. Soldier\n2. Knight\n3. Paladin\n4. Heavy");
selection = in.next();
if(selection == "1"){
System.out.print("you are a soldier");
}
else{
System.out.print(selection);
}
}

一开始这似乎有效,但正如你所看到的,我将其设置为如果变量“选择”等于1,它将打印“你是一名士兵”,但这不起作用,相反,它打印出“选择”变量值(1)。我是否做错了什么或者我应该使用不同类型的变量?

最佳答案

你可以使用这个:

 try{
int type = Integer.parseInt(selection);
switch(type){
case 1:{
//do soldier stuff
}
case 2:{
// do knight stuff
}
default:{
//do other stuff
}
}
}catch(NumberFormatException exc ){
System.out.println(selection + "is not a number, try again!!!");
}

关于java - 检测字符串变量中的数字(在 Java 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com