我有一個掃描儀input
這是getName()
在我的Player
類中調用。Scanner.nextLine();由於循環之前調用之前
public static String getName()
{
System.out.println("Enter your character's name.");
String n = input.nextLine();
return n;
}
然而,當我爲了我的RPG
類檢查相應的播放器輸入使用一個循環,一切,直到我進入 「n」或「N」爲
System.out.println("Confirm Character (Y/N)");
confirm = input.next();
的正常工作循環的工作方式是,如果選擇「n」或「N」,它會再次調用構造函數public Player(String cName, int cStamina, int cDefense, int cStrength, int cAgility, int cIntellect)
,但是,因爲這兩個是String數據類型,並且構造函數首先調用名稱,它會識別「n」或「N」作爲名稱,或者完全忽略全名。我該如何解決?
import java.util.*;
public class RPG
{
static Scanner input = new Scanner(System.in);
private static String confirm;
public static void main(String[] args)
{
System.out.println("*~~~~~~~~~~~~~~*\n{ ~ Pinnacle ~ }\n*~~~~~~~~~~~~~~*");
for (int s = 0; s < 1; s++)
{
Player me = new Player(Player.getName(), Player.getStam(), Player.getDef(),
Player.getStr(), Player.getAgi(), Player.getInt());
for (int i = 0; i < 1; i++)
{
System.out.println("*~~~~~~~~~~~~~~*\n"+Player.name +
"\nStamina: " + Player.stamina +
"\nDefense: " + Player.defense +
"\nStrength: " + Player.strength +
"\nAgility: " + Player.agility +
"\nIntellect: " + Player.intellect +
"\n*~~~~~~~~~~~~~~*");
System.out.println("Confirm Character (Y/N)");
confirm = input.next();
if (confirm.equals("Y") || confirm.equals("y"))
System.out.println("Character Created!");
else if (confirm.equals("N") || confirm.equals("n"))
s--;
else
i--;
}
}
}
}
播放器下方
import java.util.*;
public class Player extends Characters
{
static Scanner input = new Scanner(System.in);
public Player(String cName, int cStamina, int cDefense, int cStrength, int cAgility, int cIntellect)
{
name = cName;
stamina = cStamina;
defense = cDefense;
strength = cStrength;
agility = cAgility;
intellect = cIntellect;
}
public static String getName()
{
System.out.println("Enter your character's name.");
String n = input.nextLine();
return n;
}
public static int getStam()
{
System.out.println("Enter your character's stamina.");
int s = input.nextInt();
return s;
}
public static int getDef()
{
System.out.println("Enter your character's defense.");
int d = input.nextInt();
return d;
}
public static int getStr()
{
System.out.println("Enter your character's strength.");
int st = input.nextInt();
return st;
}
public static int getAgi()
{
System.out.println("Enter your character's agility.");
int a = input.nextInt();
return a;
}
public static int getInt()
{
System.out.println("Enter your character's intellect.");
int i = input.nextInt();
return i;
}
public static void flee()
{
}
}
類下面是Sample Name
樣本輸出作爲第一個名字輸入:
*~~~~~~~~~~~~~~*
{ ~ Pinnacle ~ }
*~~~~~~~~~~~~~~*
Enter your character's name.
Sample Name
Enter your character's stamina.
5
Enter your character's defense.
5
Enter your character's strength.
8
Enter your character's agility.
3
Enter your character's intellect.
2
*~~~~~~~~~~~~~~*
Sample Name
Stamina: 5
Defense: 5
Strength: 8
Agility: 3
Intellect: 2
*~~~~~~~~~~~~~~*
Confirm Character (Y/N)
n
Enter your character's name.
Enter your character's stamina.
2
Enter your character's defense.
3
Enter your character's strength.
6
Enter your character's agility.
4
Enter your character's intellect.
2
*~~~~~~~~~~~~~~*
Stamina: 2
Defense: 3
Strength: 6
Agility: 4
Intellect: 2
*~~~~~~~~~~~~~~*
Confirm Character (Y/N)
y
Character Created!
正如你所看到的,Confirm Character (Y/N)
後出現的問題。
你可以使用input.nextLine()而不是input.next() –
@RafaelTeles改變'確認= input.next();''來確認=輸入。 nextLine();'不能解決問題,我害怕。 – Zerukai
你可以發佈你的「玩家」類嗎? –