在 Groovy - 如何用数字零填充版本中的空白字段?
In Groovy -How to fill empty fields in version with number zero?
我有一个如下所示的版本,我想在版本 B 的小数点后 2 位后添加零 (0)。我怎样才能在 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
In your example you have the variables typed as numbers but they must be strings
可变长度版本字符串的通用变体:
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 )
我有一个如下所示的版本,我想在版本 B 的小数点后 2 位后添加零 (0)。我怎样才能在 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
In your example you have the variables typed as numbers but they must be strings
可变长度版本字符串的通用变体:
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 )