Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java代码不是';当它应该工作时,它不能正常工作_Java_String_Random - Fatal编程技术网

Java代码不是';当它应该工作时,它不能正常工作

Java代码不是';当它应该工作时,它不能正常工作,java,string,random,Java,String,Random,所以我一直在通过做一个随机化工具来帮助自己学习日语。当我试着运行这段代码时,它说有错误,但我已经查看了一遍,找不到任何错误。出于某种原因,它看不到Ename与答案相同。它们都是字符串变量,所以我不明白它为什么不能正常工作。 我很想知道为什么它不起作用。谢谢你那些比我更有知识的人 import java.util.Random; import java.util.Scanner; public class Game { Scanner in = new Scanner(System.in);

所以我一直在通过做一个随机化工具来帮助自己学习日语。当我试着运行这段代码时,它说有错误,但我已经查看了一遍,找不到任何错误。出于某种原因,它看不到
Ename
与答案相同。它们都是字符串变量,所以我不明白它为什么不能正常工作。 我很想知道为什么它不起作用。谢谢你那些比我更有知识的人

import java.util.Random;
import java.util.Scanner;

public class Game {
Scanner in = new Scanner(System.in);

public int enemyCount = 4; // always need to be one less than the enemy

public String Jname;//Japanese Character
public String Ename;//English Character


public static void main(String[] args) 
{

    new Game();

}

public Game(){

    battleMainMenu();
}

public void RandomEnemy() 
{


    Random random = new Random();

    int rnd = random.nextInt(enemyCount);

    if (rnd == 0)
    {

        Jname= "あ";

        Ename= "a";

    }
    else if (rnd == 1)
    {

        Jname ="い";

        Ename ="i";


    }
    else if (rnd == 2)
    {

        Jname="う";

        Ename="u";

    }
    else if (rnd == 3)
    {

        Jname="え";

        Ename="e";

    }
    else if (rnd == 4)
    {

        Jname="お";

        Ename="o";

    }

    System.out.println("\nYou walk around and encounter a "+ Jname );

}

public void battleMainMenu() 
{
    RandomEnemy();

    System.out.println("\nTo defeat this enemy you must write "+ Jname +"'s name in english. " + Ename);// Enames here for debugging purposes
    System.out.println("Your options are : 'a', 'i', 'u', 'e', 'o' ");
    System.out.println("Type one of the options in lower case. ");

    String answer = in.nextLine();
    System.out.println(answer);
    System.out.println(Ename);
    if (answer == Ename)
    {
        System.out.println("\nCorrect!\n");

    }
    else
    {
        System.out.println("\nIncorrect!\n");
        battleMainMenu();
    }
}

}使用
someSting.compare(其他字符串)
来比较字符串,而不是
=
。如果您想知道为什么必须这样做,请查看此处:

就你而言:

if (answer.equals(Ename)) {...}

顺便说一句,我把它转换成utf-8,这样它就可以在控制台上显示字符。这与学习日语有什么关系呢?我正在制作它,所以它随机给我一个字符,我用英文字母回答它,听起来像是为了帮助记忆,以便以后我可以用它来写汉字。你可以发布错误信息吗。但是if(answer==Ename){System.out.println(“\nCorrect!\n”);}else{System.out.println(“\nCorrect!\n”);battleMainMenu();}//工作不正常。哦,我没有看到其他4条注释…:)但是给你。