将枚举无缝转换为Java的字符串对象
我对解析和处理文本文件不太熟悉。如何将带有枚举的方法签名转换为字符串,以便在不浪费CPU资源的情况下从文本文件读取和有效解析?我现在有这样的方法签名将枚举无缝转换为Java的字符串对象,java,parsing,enums,Java,Parsing,Enums,我对解析和处理文本文件不太熟悉。如何将带有枚举的方法签名转换为字符串,以便在不浪费CPU资源的情况下从文本文件读取和有效解析?我现在有这样的方法签名 public void createReservation(VehicleType v, String cName, long phoneNumber, String sDate, String eDate) throws Exception //right here { //trouble with representing Vehicle
public void createReservation(VehicleType v, String cName, long phoneNumber, String sDate, String eDate) throws Exception //right here
{
//trouble with representing VehicleType v in my Reservation text file
}
Reservation.txt文件看起来与上面的签名匹配
"COMPACT", "John Wick", 312 900 6001, "2019-02-09", "2019-02-14"
"SUV", "Harvey Dent", 302 600 2001, "2019-02-11", "2019-02-15"
在我的主类中,我有这样一个parseVehicleLine方法
private void parseReservationLine(String str){
Scanner sc = new Scanner(str);
sc.useDelimiter(",");
while(sc.hasNext()){
vehicleType = sc.next();//there is an error here because it is still an enum of Vehicle class
String cName = sc.next();
long phoneNumber = sc.nextLong();
String Date = sc.next();
String eDate = sc.next();
}
sc.close();
}
public abstract class Vehicle {
public enum VehicleType
{
ECONOMY(18.00), PREMIUM(22.50), SUV(25.50);
private double vehicleDailyCost;
private VehicleType(double vehicleDailyCost)
{
this.vehicleDailyCost = vehicleDailyCost;
}
public double getVehicleDailyCost()
{
return vehicleDailyCost;
}
}
有人能解释一下我如何正确地将VehicleType枚举转换为字符串而不会出现问题吗?谢谢 您正在以字符串的形式读取文本文件,因此我认为您需要将字符串转换为VehicleType,而不是像您提到的那样将字符串转换为VehicleType 您应该能够使用valueOf从字符串中获取枚举: v、 姓名或v.ToString您可能想阅读
vehicleType = VehicleType.valueOf(sc.next());