我需要导入枚举值,即天,我在同一个包下的单独枚举中创建的。我要问的是如何使用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("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");}
答案 0 :(得分:0)
您必须手动将字符串转换为枚举。例如:
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枚举,它还提供了获取星期几的显示名称的方法,因此您可以这样做:
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());