Java 使用扫描仪导入枚举值
我需要导入枚举值,即天,这是我在同一个包下的单独枚举中创建的。我要问的是如何使用Scanner将枚举值导入主程序Java 使用扫描仪导入枚举值,java,enums,Java,Enums,我需要导入枚举值,即天,这是我在同一个包下的单独枚举中创建的。我要问的是如何使用Scanner将枚举值导入主程序 package com.huo.kop; import java.util.Scanner; public class WeekDay { public static void main(String[] args) { Scanner sc=new Scanner (System.in); System.out.println("E
package com.huo.kop;
import java.util.Scanner;
public class WeekDay {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
System.out.println("Enter the day(only three letters with first letter being Capital : ");
String dayWeek=sc.next();
if(dayWeek.equals("Sat") || dayWeek.equals("Sun"))
{System.out.println("Yay, Its a Weekend!!!");
}
else
{System.out.println("Buah..Its still WeekDay!! Need to Work");}
您必须手动将字符串转换为枚举。例如:
public static Weekday getWeakdayForString(String s)
{
switch (s) {
case "monday": return Weekday.MONDAY;
case "tuesday": return Weekday.TUESDAY;
...
case "sunday": return Weekday.SUNDAY;
default: throw new IllegalArgumentException();
}
}
在Java 8中,有预定义的DayOfWeek enum,它还提供了获取一周中某一天的显示名称的方法,因此您可以执行以下操作:
public static DayOfWeek getDayOfWeakForString(String s)
{
for (DayOfWeek dow : EnumSet.allOf(DayOfWeek.class)) {
if (dow.getDisplayName(TextStyle.FULL, Locale.getDefault()).equals(s)) {
return dow;
}
}
throw new IllegalArgumentException();
}
从扫描仪读取数据时,您需要执行以下操作:
DayOfWeek dow = getDayOfWeekForString(sc.next());
请修复格式,为枚举添加代码,并定义导入枚举值的含义。字符串的使用与枚举有什么关系?是否有帮助?