首页 / JAVA / java获取枚举中最长的字符串
java获取枚举中最长的字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java获取枚举中最长的字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1954字,纯文字阅读大概需要3分钟。
内容图文
![java获取枚举中最长的字符串](/upload/InfoBanner/zyjiaocheng/730/1b5742c17e7749cca8ca626db371341f.jpg)
我想在Java Enum中找到最长的String.做这个的最好方式是什么?
我没有和Enums一起工作,所以任何建议都是受欢迎的.这些是我的枚举
public enum DOMAIN_LANGUAGES {
ENG, SWE;
public static List<DOMAIN_LANGUAGES> getDomainLanguages(){
List<DOMAIN_LANGUAGES> languages = new ArrayList<DOMAIN_LANGUAGES>();
languages.add(ENG);
languages.add(SWE);
return languages;
}
}
public enum DOMAIN_STATE {
LIVE,
PENDING_RENEWAL,
PENDING_TRANSFER_OUT,
}
编辑:
我没有很好地定义这个问题,因此我编辑它.
我从我的两个枚举中得到的是一个函数,它接受我定义的两种枚举中的任何一种,并找到最长的文字.所以在DOMAIN_STATE中将是“PENDING_TRANSFER_OUT”.我希望这会让事情变得容易理解.
编辑2
所以现在我得到了很棒的帮助,但我不确定为什么这段代码不起作用.当我尝试使用enumList.values()时,它会抱怨?这就是我无法找到解决方案的原因,我缺少什么? =)
public String CalculateDropdownListWidth(Enum enumList){
int chars = 0;
for(Enum e : enumList.values()){
//do stuff
}
}
最后:
所以现在我知道为什么这不起作用.我喜欢循环EnumSet而不是Enum.如果我没有完全被误解,那么Enum只是“集合”中的一个.
所以这是我的解决方案.谢谢大家的帮忙!
public String CalculateDropdownListWidth(EnumSet enumList){
int chars = 0;
for(Object e : enumList){
if(e.toString().length() > chars){
chars = e.toString().length();
}
}
//Pixelmodifier
Double oneChar = 1.35;
Double result = oneChar * chars;
return String.valueOf(result) + "px";
}
感谢任何帮助!
/ Marthin
解决方法:
String longestYet= "";
for (Enum<?> value :OfferType.values()){
if (longestYet.length()< value.name().length()) {
longestYet= value.name();
}
}
longest = longestYet;
如果您经常为特定枚举需要此值,则可以将其添加到枚举itselve中,并在静态初始化器中设置该值.
public static enum MyType {
NORMAL,
OTHER;
public static final String longest;
static{
String longestYet= "";
for (Enum<?> value :MyType.values()){
if (longestYet.length()< value.name().length()) {
longestYet= value.name();
}
}
longest = longestYet;
}
}
或者甚至更好,将静态初始化方法放在一个可以在几个枚举中重用的Util函数中.
内容总结
以上是互联网集市为您收集整理的java获取枚举中最长的字符串全部内容,希望文章能够帮你解决java获取枚举中最长的字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。