在 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 )