所以我遇到的问题似乎是一件非常简单的事情,我现在无法解决这个问题。
我正在尝试确定传递给某个方法的String是否是有效的时区缩写(PDT,EST等)我有一个字符串,只列出我应该使用的所有100个左右的缩写只有一个空格介于每个之间,我希望能够检查传递的缩写是否在我列出的长字符串中的任何位置,然后如果不是,则返回错误消息。
有没有人对如何搜索长字符串有任何想法?或者我不应该首先使用字符串?提前感谢你们给我的任何帮助!
答案 0 :(得分:4)
答案 1 :(得分:0)
您可以在long String上使用方法contains
。或者,您可以使用数组而不是长字符串,如果添加更多缩写,则可能更容易维护。
对于一组缩写,请使用ArrayUtils.contains
(它是Apache Commons的一部分,而不是标准库)。
答案 2 :(得分:0)
我不会为此使用字符串。
如果您的时区字符串类似于:
String TIMEZONES = "PDT EST CET ..."
然后您可以使用下一个代码转换为Set<String>
:
Set<String> VALID_TZS = new HashSet<>(Arrays.asList(TIMEZONES.split(" ")));
并检查您的代码是否是有效的时区:
boolean isValidTZ(String tz) {
return VALID_TZS.contains(tz);
}
答案 3 :(得分:-1)
String ALL_ABRBREVIATIONS = ...; // all possible
public boolean isValid(String toCheck) {
return ALL_ABRBREVIATIONS.contains(toCheck);
}