TeamCity环境变量转大写问题:Kotlin代码未得预期结果
问题分析与解决
问题描述
想要将环境变量VAR的值转为大写后赋值给变量,尝试了以下Kotlin代码:
// 假设环境变量VAR的值为something val var_1 = "%env.VAR%" val var_2 = var_1.uppercase()
实际得到的结果是:
var_2 = %ENV.VAR%
但期望结果是:
var_2 = SOMETHING
原因分析
你直接将"%env.VAR%"当作字符串字面量赋值给了var_1,Kotlin并不会自动解析这个格式的字符串为环境变量的实际值。调用uppercase()方法时,只是把字符串里的小写字母转为大写,自然得到%ENV.VAR%,而非环境变量实际值的大写形式。
解决方案
在Kotlin中,需要通过System.getenv()方法获取环境变量的实际值,再进行大小写转换。
正确代码示例
// 获取环境变量VAR的实际值,加空值判断避免空指针异常 val var_1 = System.getenv("VAR") ?: "" val var_2 = var_1.uppercase()
如果环境变量VAR的值是something,运行这段代码后,var_2的值就会是SOMETHING。
内容的提问来源于stack exchange,提问作者kendallbp
相关产品推荐
相关产品推荐

