java 使用字符串的枚举

时间:2020-02-23 14:34:59  来源:igfitidea点击:

在此快速教程中,如何使用枚举创建字符串常量,将字符串转换为枚举等。
我们可以在此处完成枚举教程。

让我们创建Java枚举字符串常量。

创建Java枚举字符串

package org.igi.theitroad;
 
public enum Weekdays {
 
	MONDAY,
	TUESDAY,
	WEDNESDAY,
	THURSDAY,
	FRIDAY
}

按名称访问枚举

你可以简单地使用。
运营商接入的枚举,但如果你有字符串作为枚举的名称,然后使用方法。

package org.igi.theitroad;
 
public class JavaEnumStringMain {
 
	public static void main(String[] args) {
		//You can simply use . operator
		Weekdays wd=Weekdays.TUESDAY;
		System.out.println("Week day:"+wd.name());
		
		//If you have String as "TUESDAY", you can use valueOf method
		Weekdays wdVal=Weekdays.valueOf("TUESDAY");
		System.out.println("Week day:"+wdVal.name());
		
	}
 
}

请注意,ValueOf方法的字符串参数是区分大小写的。

package org.igi.theitroad;
 
public class JavaEnumStringMain {
 
	public static void main(String[] args) {
		
		Weekdays wdVal=Weekdays.valueOf("TUesDAY");
		System.out.println("Week day:"+wdVal.name());
	}
}

输出:

例外在线程"主" java.lang.IllegalArgumentException异常:在org.igi.theitroad没有枚举常数org.igi.theitroad.Weekdays.TUesDAY在java.base/java.lang.Enum.valueOf(Enum.java:240)。
 Weeardays.Valueof(Weeardays.java:1)在org.igi.theitroad.javaenumstringmain.main(javaenumstringmain.java:7)

通过字符串Constansts迭代枚举所有值

我们可以使用值方法简单地迭代所有字符串常量。

package org.igi.theitroad;
 
public class JavaEnumStringMain {
 
	public static void main(String[] args) {
		
		for(Weekdays wd:Weekdays.values())
		{
			System.out.println(wd.name());
		}
	}
}

我们可以简单地修改以上枚举。

package org.igi.theitroad;
 
public enum Weekdays {
 
	MONDAY(1),
	TUESDAY(2),
	WEDNESDAY(3),
	THURSDAY(4),
	FRIDAY(5);
	
	private int index;
 
	Weekdays(int index)
	{
		this.index=index;
	}
	public int getIndex() {
		return index;
	}
 
	public void setIndex(int index) {
		this.index = index;
	}
	
}

访问任何工作日的索引

package org.igi.theitroad;
 
public class JavaEnumStringMain {
 
	public static void main(String[] args) {
		
		int index=Weekdays.THURSDAY.getIndex();
		System.out.println("Index of Thrusday is: "+index);
	}
}