将字符串与List <Integer>中的值进行比较

问题描述

我有两个值5和6,它们都是整数,它们是ArrayList的一部分。我还有另一个具有String输入的boolean方法,我必须比较该String的值并遍历该列表,看看该值是否与该列表中的元素匹配。如果匹配,那么我应该返回true,否则返回false。目的是查看我的值是否与列表中的值之一匹配。 该列表是常量类的一部分,并且我的方法位于Validator类中。下面是我的代码

Constants.java:

public static final List<Integer> TYPES = new ArrayList<Integer> (Arrays.asList(5,6));

Validator.java:

public static boolean isPromoTypeFormatValid (String value) {
    value = Util.getTrimmedValue(value);
    int intValue = Integer.valueOf(value);
    List <Integer> promoTypeList = scpduuConstants.PROMO_TYPES;
    for(int i = 0; i < promoTypeList.size(); i++) {
        if (promoTypeList.contains(intValue)) {
            return true;
        }
    }
    return false;
}

是否有更好的方法来执行此操作?如果将String值与ArrayList值比较为整数,是否会出现问题?我对此有些陌生,但尝试找出最有效的方法。请让我知道任何建议。

解决方法

也许这会有所帮助:

public static final List<Integer> TYPES = new ArrayList<Integer>(Arrays.asList(5,6));

public static void main(String[] args) {

    final String value = "5";

    checkValue(value);

}

public static boolean checkValue(String value) {

    final var valueAsInt = Integer.parseInt(value.trim());
    
    return TYPES.contains(valueAsInt);

}