Java 如何用相应的字符串替换用户输入的整数
如何将用户输入的数字替换为打印行中用户选择的实际对应字符串。我的代码较长,但我不得不将其删减Java 如何用相应的字符串替换用户输入的整数,java,Java,如何将用户输入的数字替换为打印行中用户选择的实际对应字符串。我的代码较长,但我不得不将其删减 import java.util.Scanner; public class MagicGame { public static void main(String [] args) { String name; int userCharacter; int armorChoice; int weaponChoice; Scanner input
import java.util.Scanner;
public class MagicGame
{
public static void main(String [] args)
{
String name;
int userCharacter;
int armorChoice;
int weaponChoice;
Scanner input = new Scanner(System.in);
System.out.println("Please enter your name");
name = input.nextLine();
{
System.out.println("Please select the character you would like to play:" + '\n' + "1 for Magic User" + '\n' + "2 for Fighter" + '\n' + "3 for Thief" + '\n' + "4 for Druid" );
userCharacter = input.nextInt();
System.out.println("Please select your Armor Type:" + '\n' + "1 for Steel plate – Armor Class 10" + '\n' + "2 for Chain mail – Armor Class 5" + '\n' + "3 for Leather armor – Armor Class 3" + '\n' + "4 for A robe – Armor Class 1");
armorChoice = input.nextInt();
System.out.println("Please choose a Weapon:" + '\n' + "1 for Sword" + '\n' + "2 for Short Sword" + '\n' + "3 for Scimitar" + '\n' + "4 for Dagger");
weaponChoice = input.nextInt();
System.out.println("Hello " + name + "! You chose to play a " + userCharacter + "." + '\n' + "Your armor is" + armorChoice + "." + '\n' + "You will be fighting with a " + weaponChoice + ".");
}
}
这些应该是三组,每组编号为1-4,但格式不断变化
Map很适合存储这样的值 例如,此代码:
int playerCharacter;
Map<Integer, String> characters = new HashMap<Integer, String>();
characters.put(1, "Fighter");
characters.put(2, "Mage");
characters.put(3, "Rogue");
playerCharacter = 2; //This is what you get from input
System.out.println("You are: " + characters.get(playerCharacter));
您也可以使用映射进行迭代:
System.out.println("Please select the character you would like to play:");
for (Entry<Integer, String> character : characters.entrySet()) {
System.out.println(character.getKey() + ": " + character.getValue());
}
您的意思是要替换
系统的内容。在
中,我认为这种情况下最好的解决方案是枚举。具有连续整数的映射与列表相同。还有一组有限的值真正地叫出了“enum”:@m0skit0-不太可能,Java中带有构造函数的enum对于初学者来说是相当困难的。他确实需要数字和字符串之间的关系。@libik 1)枚举并不困难,而且在任何情况下,这都不是一个有效的借口,2)他认为他需要这种关系,事实上你可以在没有这种关系的情况下对它进行建模,即使如此,每个枚举都可以包含ID和名称,问题解决了。
System.out.println("Please select the character you would like to play:");
for (Entry<Integer, String> character : characters.entrySet()) {
System.out.println(character.getKey() + ": " + character.getValue());
}
Please select the character you would like to play:
1: Fighter
2: Mage
3: Rogue