如何在Groovy中将输入转换为大写

时间:2019-07-16 14:08:30

标签: groovy case-sensitive uppercase

我正在接受JSON输入,并且希望它将其转换为大写。有人可以帮我提供我的代码

int synchronizeSingleUnit(ApiResultDTO apiResultDTO, def inputJSON, int totalUpdates) {
    def sql = synchronizationApiSqlHelperService.getUnitsSql()
    String unit = getEmptyIfValueNull(inputJSON.unit)

    def session = sessionFactory_apiDb.openSession() as SessionImpl
    def connection = session.connection()
    def sqlConnection = new Sql(connection)

    try {
        sqlConnection.execute(sql, [unit:unit])
    } catch (Exception ex) {
        // Preload result with statement to be executed
        apiResultDTO.setJsonFailingPart(inputJSON)
        apiResultDTO.setFailedSql(sql, [unit:unit])
        throw new ExceptionWrapper(apiResultDTO, ex)
    } finally {
        session.close()
        connection.close()
    }

1 个答案:

答案 0 :(得分:1)

您可以按以下方式使用Java String.toUpperCase()

String unit = getEmptyIfValueNull(inputJSON.unit)
String uCaseUnit = unit.toUpperCase()

<-编辑->

作为注释和补充,我不知道方法getEmptyIfValueNull的细节,但是从名称来看,您只想在表达式inputJSON.unit返回null时返回一个空字符串。

Groovy有两个特殊的运算符,使这些表达式更易于编写。

使用这两个,您可以更简洁地重写代码,如下所示:

String unit = inputJSON.unit?.toUpperCase() ?: ''

说明:

  • inputJSON.unit?.toUpperCase()-计算inputJSON.unit,如果该表达式返回null,则从整个表达式返回null(不要执行toUpperCase方法)。如果inputJSON.unit返回一个非null值,则事情将像使用inputJSON.unit.toUpperCase()一样工作。
  • ... ?: ''-接受一个表达式,如果它不是空字符串或null,则将其返回,否则返回空字符串。

第一个运算符.?专门用于处理空值,而第二个运算符?:使用groovy truth,它包含但不仅限于空值。

有几种写上面的方法,例如:

String unit = (inputJSON.unit ?: '').toUpperCase()

但是在我看来,第一个版本“更流行”。给每个人自己。