2013-08-23 8 views
2

Мы используем OpenCSV для сопоставления CSV-файла с Java Bean. Я хочу, чтобы все значения String отображались в uppar-случае при сопоставлении его с Java-компонентом.
Пусть CSV содержит следующую строкуИзменение всех строковых полей на верхний регистр

abc, 123, def, 123abc 

во время отображения его бобов он должен быть преобразован

ABC, 123, DEF, 123abc 

Я могу пойти с отражением и иметь желаемый результат .Но искали раствор через OpenCSV или Есть ли какая-либо функция в Apache Bean Utils или любая другая подобная библиотека, которая преобразует все строковые поля из компонента в верхний регистр?

ответ

1

Используйте переопределены 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); 
+0

Выглядит хорошо, дайте мне попробовать .. – xyz

+0

Работали как шарм :) – xyz

+0

@Karna Happy help :) –

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)); 
+0

Как уже упоминалось я предпочитаю не делать это самостоятельно. – xyz