2

我们正在使用OpenCSV将 CSV 文件映射到 Java Bean。我想在将所有字符串值映射到 Java bean 时将其设置为大写。
假设 CSV 包含以下行

abc, 123, def, 123abc   

在将它映射到 bean 时,它应该被转换

ABC, 123, DEF, 123abc

我可以进行反射并获得所需的结果。但是正在通过OpenCSV寻找解决方案,或者Apache Bean Utils或任何其他类似的库中是否有任何功能可以将所有字符串字段从 bean 转换为大写?

4

2 回答 2

2

使用重写的CsvToBean实现:

CsvToBean<BeanType> csv2Bean = new CsvToBean<BeanType>() {

    @Override
    protected Object convertValue(String value, PropertyDescriptor prop) {
        return super.convertValue(value.toUpperCase(), prop);
    }
};

List<BeanType> beanList = csv2Bean.parse(mappingStrategy, csvReader);
于 2013-08-23T06:54:25.433 回答
1

试试这个,StringUtils.upperCase

if (StringUtils.isAlpha(value)) 
        {
            System.out.print("With uppercase " + StringUtils.upperCase(value));
        }
        else  // with number or anything with the word
        {
            System.out.print("Without uppercase " + value);
        }

或者

System.out.println(""+(StringUtils.isAlpha(value) ? StringUtils.upperCase(value) : value));
于 2013-08-23T06:46:55.790 回答