在Java中扫描字符串后,如何将其保存在文件中?
我正在尝试制作一个Java程序,它可以根据价格对不同类型的自行车进行分类。为了做到这一点,我有两个不同类型的自行车文件:山地自行车和赛车。它们都可以是绿色或蓝色。其格式如下:在Java中扫描字符串后,如何将其保存在文件中?,java,Java,我正在尝试制作一个Java程序,它可以根据价格对不同类型的自行车进行分类。为了做到这一点,我有两个不同类型的自行车文件:山地自行车和赛车。它们都可以是绿色或蓝色。其格式如下: Blue Racing: Price: 300 Topspeed: 50 Green Mountain: price: 400 Topspeed: 30 Blue Mountain: Price: 150 Topspeed: 20 Green Racing: Topspeed: 50 price: 750 对这些自行车进
Blue Racing:
Price: 300
Topspeed: 50
Green Mountain:
price: 400
Topspeed: 30
Blue Mountain:
Price: 150
Topspeed: 20
Green Racing:
Topspeed: 50
price: 750
对这些自行车进行分类,我制作了一个父类“Bike”,子类为“RaceBike”,子类为“MountainBike”。这个类有一个扫描方法。此方法扫描自行车的类型,并根据扫描的自行车类型调用其中一个子类的扫描方法
所有扫描仪方法必须如下所示:
public static Bike scanner(Scanner scan);
但是,例如,一旦在父类中扫描“Blue Racing”,子类的Scanner方法中的Scanner就无法再访问这些单词,但这是确定新自行车颜色所必需的
所以我的问题是,扫描完文件后,我怎么还能访问文件中的单词
不幸的是,由于我的大学规则,我不能显示任何代码。但是,我可以编写一些伪代码来让它更清楚一些:
public static Bike scanner(Scanner scan){
scan first word;
scan second word;
if second word equals racing
return racingbike.scanner(scan)
else
return mountainbike.scanner(scan)
}
public static RacingBike scanner(Scanner scan){
String color = scan first word //The color
scan second word //kind of bike
scan third word
int price = scan first number // price
return a new Racingbike, with attributes color and price
}
像上面的例子那样实现它是不可能的,因为颜色不能再在RacingBike扫描器方法中使用了。因此,我必须找到一种方法,仍然能够访问它
我无法更改方法的返回类型和参数
谢谢。您不应该将扫描仪传递给工厂方法(或构造函数),因为它将获取值的方式与值的用户相耦合 编写代码来解析文件并处理文件中值的顺序和类型。让它远离使用从文件解析的字符串和int的任何东西
通过将字符串和int(可能还有枚举)传递给构造函数,您可以使测试更容易,并且您应该编写大量的单元测试。这实际上就是我正在做的(如果我理解您的意思):例如,为了获得价格,我做了:int price=scan.nextInt()。等等。我认为这很清楚,但我现在将在我的原始问题中对其进行编辑。@JasonMacville不,你不是(我的意思是说工厂方法而不是构造函数)。让我们这样说:不应该有一个同时使用/导入RacingBike和Scanner的类。