我正在使用单独的程序,一个将在.txt
文件中读取,然后该程序将读取的值存储到另一个包含HashMap
的程序中。包含HashMap
的程序名为Hero.java
,并且是abstract class
。我有一个程序扩展了名为Cop.java
的程序。考虑到这一点,我想知道将从GameDriver.java
读入的文件传输到HashMap
的正确方法。
据我所知,一种方法是初始化Cop.java
,如此,
Cop N = new Cop();
然后执行方法调用
N.rescue();
添加读入值的正确方法是什么?我可以使用与那个类似的解决方案吗?我想让String cn
存储在地图name
和int pts
中以存储在下面的points
中。感谢您的所有答案,如果您需要任何澄清,请告诉我。我会发布我的GameDriver.java
代码以及我的Hero.java
代码谢谢!!
GameDriver.java
import java.io.*;
import java.util.*;
import java.awt.*;
public class GameDriver {
public static void main(String[] args) throws FileNotFoundException {
Cop N = new Cop();
String s;
File f = new File (args[0]);
Scanner input = new Scanner(f);
while (input.hasNext()) {
s = input.next();
if (s.equalsIgnoreCase("h")) { Character c1 = new Cop();
System.out.println(c1); }
if (s.equalsIgnoreCase("r")) { String cn = input.next(); //HashMap name
int pts = input.nextInt(); //HashMap points
N.rescue();}
}
}
}
Hero.java
import java.util.*;
import java.io.*;
import java.awt.*;
public abstract class Hero extends Character
{
private String heroname1;
public Hero() {
heroname1 = "Rick Grimes"; //the default player name
}
HashMap name = new HashMap<String, GameDriver>();
HashMap points = new HashMap<Integer, GameDriver>();
public Hero(String newhero) {
if (newhero.length() > 0) {
heroname1 = newhero;
} else { heroname1 = "Rick Grimes"; } //defaulted as protagonist
}
public String getHeroName() {
return heroname1; //return the name
}
public String rescue() { //class to rescue people or things
return heroname1 + " rescued " + name + " for " + points + "!";
}
public String toString() { //print
return heroname1;
}
}
总体目标
我意识到我没有添加到我的总体目标中:目的是在一个文件中读取以创建一个新的英雄(通常只有一个)并让他们在这个假想的游戏中保存多个人/事物。例如,如果文件说
c h Rick Grimes //create hero
r Carl 100 //rescue for x amount of points
我希望将数据存储在地图或其他内容中并输出如下:
Rick Grimes
Rick Grimes rescued Carl for 100 points!
还要注意这一切都必须通过继承来完成