Я хочу преобразовать версию компонента (например, 2.6.0
) в эту форму G02R06C00
. Я думаю, что это возможно с регулярным выражением и шаблоном с Java, но я не нашел как. Я видел примеры для сопоставления строки с шаблоном (в этом случае регулярное выражение было бы G\d\dR\d\dC\d\d
, я думаю), но я не нашел, как преобразовать строку в другую строку с шаблоном. Заранее спасибо.
То, что я сделал, это:
String gorocoVersion = version.replaceAll("(\\d*)\\.(\\d*)\\.(\\d*)", "G$1R$2C$3");
, который выдает G2R6C0
, еще не добавлено 0
, чтобы соответствовать 2
цифрам. Итак, мне нужно было раньше разделить входную строку, и я больше не могу использовать replaceAll
, поэтому я искал более умную опцию, которая автоматически добавит 0
перед простым di git также в соответствии с шаблоном вывода G\d\dR\d\dC\d\d
Как мы можем найти в слове или в Excel
Что-то, что работает с версией моментального снимка, но очень уродливо:
/**
* @return version in G00R00C00(-SNAPSHOT) format.
*/
private String formatVersion() {
String gorocoVersion = "";
if (StringUtils.isNotBlank(version)) {
String[] versionTab = version.split("\\.");
String partG = String.format("%02d", Integer.parseInt(versionTab[0]));
String partR = String.format("%02d", Integer.parseInt(versionTab[1]));
String partC = versionTab[2];
String snapshotSuffix = "-SNAPSHOT";
if (partC.endsWith(snapshotSuffix)) {
partC = String.format("%02d",
Integer.parseInt(partC.substring(0, partC.indexOf('-')))) + snapshotSuffix;
} else {
partC = String.format("%02d", Integer.parseInt(partC));
}
gorocoVersion = "G" + partG + "R" + partR + "C" + partC;
}
return gorocoVersion;
}