我有一个像下面这样的版本,我想在versionB中添加0(0)后2十进制。我如何在groovy中实现这一点?
versionA=1.12.14
versionB=1.11
预期输出:-
versionA=1.12.14
VersionB=1.11.0
解决方案
您正在寻找的术语是语义版本控制(semver)。这不是最漂亮的解决方案,但它将工作
//def semver = "1"
def semver = "1.13"
def split = semver.split("\.");
if(split.size() == 1) {
semver+=".0.0"
} else if(split.size()==2) {
semver+=".0"
}
println semver
在您的示例中,您将变量类型为数字,但它们必须是字符串
版本字符串可变长度的通用变体:
String getFormattedVersion( String raw, int maxPositions = 3 ){
def parts = raw.split( /./ )
(0..<maxPositions).collect{ it < parts.size() ? parts[ it ] : '0' }.join '.'
}
assert '1.2.3' == getFormattedVersion( '1.2.3' )
assert '1.2.0' == getFormattedVersion( '1.2' )
assert '1.0.0' == getFormattedVersion( '1' )
assert '1.2.3.0.0' == getFormattedVersion( '1.2.3', 5 )