对于冗长的提交,我深表歉意,但我在让该程序正常运行方面遇到了一些困难。
还有另一个驱动程序运行这个程序,它要求我打印出魔术师的姓名、级别、用品等(给定某些参数)。
但是,当我使用 toString() 方法打印出字符串时。我不断地得到 我的名字/级别/用品的“空”响应。我的号码似乎也没有更新。
有人可以看一下我做错了什么吗?
我似乎无法让程序获取 Magician 参数。
public class Magician
{
private String name, level, supplies;
private int galleons;
private double health;
public Magician(String initialValues)
{
double health = 1000;
int galleons = 200;
initialValues = name + "#" + level + "#" + supplies;
}
public String toString()
{
return "Name: " + name+
"Level: " + level +
"Galleons: " + galleons +
"Health: " + health +
"Supplies: " +supplies;
}
}
这是驱动程序的开头,我无法打印出来:
public class MagicAndMalice
{
public static void main (String[] args)
{
Magician harry = new Magician("Harry Potter#apprentice#Owl#Wand");
System.out.println(harry); // test toString() method
System.out.println("------------------------\n\n");
}
}
最佳答案
首先,您再次声明生命值
和加隆
。您不应该再次声明它们,只需分配值即可:
health = 1000;
galleons = 200;
此外,您似乎对作业感到困惑。如果您想为name
、level
和supplies
分配一些值,您必须这样做:
name = ...;
level = ...;
supplies = ...;
如果 initialValues
将包含类似 "a#b#c"
的字符串,并且您想要将每个“部分”分配给这些变量,则可以使用 String#split()
:
String[] parts = initialValues.split("#");
name = parts[0];
level = parts[1];
supplies = parts[2];
但是我真的建议您阅读一本书或学习一些 Java 教程,以便您首先了解基础知识。
关于java - 程序输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427757/