Java 扫描仪,不匹配?

Java 扫描仪,不匹配?,java,Java,我正在尝试使用扫描仪创建一个对象。我只是在想,我可以在编译后创建这样的对象吗?或者我必须事先做好吗 所以我问了一个问题,然后运行扫描仪。之后,我尝试使用扫描仪中的字符串创建一个对象。这可能吗?以下是可能重要也可能不重要的代码: import java.util.Scanner; public class CreateCharacter{ public static Scanner input = new Scanner( System.in ); public static S

我正在尝试使用扫描仪创建一个对象。我只是在想,我可以在编译后创建这样的对象吗?或者我必须事先做好吗

所以我问了一个问题,然后运行扫描仪。之后,我尝试使用扫描仪中的字符串创建一个对象。这可能吗?以下是可能重要也可能不重要的代码:

import java.util.Scanner;

public class CreateCharacter{
    public static Scanner input = new Scanner( System.in );
    public static String race;
    public static String name;

    public static String askRace(){
        System.out.println();
        System.out.println("What race do you want to be?");
        System.out.print("(");
        Character.getAllRaces();
        System.out.println(")");
        race = input.next();
        System.out.println();   

        return race;    
    }

    public static String askName(){
        System.out.println();
        System.out.println("What is your Name?");
        name = input.next();
        System.out.println();   

        return name;    
    }

    public static void askCharDeets(){
        askName();
        askRace();
        input.close();
    }


    public static void main(String[] arguments){
        askCharDeets();
        Character c1 = new Character(name, race);
        //c1.Stats();
    }
}

import java.util.HashMap;
公共类字符扩展生物{
公共静态字符串[]种族={“人类”、“精灵”、“矮人”、“侏儒”};
int-hp;
int-mp;
int spd;
int ac;
公共字符(字符串字符名、字符串竞争){
name=charName;
info=newhashmap();
stats=newhashmap();
信息输入(“名称”,名称);
信息输入(“性别”、“男性”);
统计数据。放置(“级别”,1);
for(int i=0;i
奇怪的是,这不是java错误,而是打印出我的
race+”不是“+name+”的有效种族类型。

使用
race.equals(种族[0])
而不是
race==races[0]

equals
函数检查字符串的实际内容,
=
运算符检查对对象的引用是否相等


请参考并提问以获得正确的解释。

天哪,我知道这是件愚蠢的事。非常感谢你。我有点不习惯,但我想我会记得这样的话:P
import java.util.HashMap;

public class Character extends Creature{
    public static String[] races = {"Human", "Elf", "Dwarf", "Gnome"};
    int hp;
    int mp;
    int spd;
    int ac;

    public Character(String charName, String race){
        name = charName;
        info = new HashMap<String, String>();
        stats = new HashMap<String, Integer>();

        info.put("Name", name);
        info.put("Gender", "Male");
        stats.put("Level", 1);
        for(int i = 0; i < races.length; i++){
            if(race == races[0]){
                info.put("Race", races[0]);
                stats.put("Fortitude", 9);
                stats.put("Willpower", 9);
                stats.put("Dexterity", 9);
                stats.put("Strength", 9);
                otherStats();
                break;
            }else if(race == races[1]){
                info.put("Race", races[1]);
                stats.put("Fortitude", 7);
                stats.put("Willpower", 11);
                stats.put("Dexterity",9);
                stats.put("Strength", 9);
                otherStats();
                break;
            }else if(race == races[2]){
                info.put("Race", races[2]);
                stats.put("Fortitude", 11);
                stats.put("Willpower", 7);
                stats.put("Dexterity", 9);
                stats.put("Strength", 9);
                otherStats();
                break;
            }else if(race == races[3]){
                info.put("Race", races[3]);
                stats.put("Fortitude", 9);
                stats.put("Willpower", 9);
                stats.put("Dexterity", 11);
                stats.put("Strength", 7);
                otherStats();
                break;
            }else{

                System.out.println(race + " is not a valid Race Type for " + name+ ".");
                break;
            }
        }   
    }

    void otherStats(){
        hp = stats.get("Fortitude") + stats.get("Level");
        mp = stats.get("Willpower") + stats.get("Level");
        spd = stats.get("Dexterity") + stats.get("Level");
        ac = stats.get("Fortitude")/2 + stats.get("Level");

        stats.put("Mana Points", 9);
        stats.put("Hit Points", hp);
        stats.put("Speed", 11);
        stats.put("Armor Class", 7);
    }

    public void Stats(){
        System.out.println("-"+name+"-");
        System.out.println("Race " + info.get("Race"));
        System.out.println("Class " + info.get("Class"));
        System.out.println("Level " + stats.get("Level"));
        System.out.println("---");
        System.out.println("Hit Points " + stats.get("Hit Points"));
        System.out.println("Mana Points " + stats.get("Mana Points"));
        System.out.println("Speed " + stats.get("Speed"));
        System.out.println("Armor Class " + stats.get("Armor Class"));
        System.out.println("---");
        System.out.println("Fortitude " + stats.get("Fortitude"));
        System.out.println("Willpower " + stats.get("Willpower"));
        System.out.println("Dexterity " + stats.get("Dexterity"));
        System.out.println("Strength " + stats.get("Strength"));        
    }

    public static void getAllRaces(){
        for(int i = 0; i < races.length; i++){
            if(i < races.length - 1){
                System.out.print(races[i]+ ", ");
            }else if(i == races.length - 1){
                System.out.print(races[i]);
            }
        }
    }
}