Как использовать строку.формат в groovy?
Приведенный ниже код выводит переменную response, перед которой стоят пробелы.
Число пробелов, которые должны быть напечатаны перед переменной response, эквивалентно разности itemNumber и examineeResponses.
Теперь, можно ли заполнить строку нулем ("0") вместо пробелов, используя строку.формат?
def converted = examineeResponses+String.format("%${itemNumber - 1}s", response)
Пример использования вышеуказанных кодов:
examineeResponses = '1' // String
itemNumber = 10 //int
response = '3' // String
Вывод:
" 3"
Желаемый результат:
"000000003"
2 ответа:
Я верю, что вы можете это сделать, но немного трудно понять ваш вопрос:
int itemNumber = 10 String examineeResponses = '1' char response = '3' "$response".padLeft( itemNumber - examineeResponses.length(), '0' )Хотя я подозреваю (вы не говорите), что вы просто хотите, чтобы он был напечатан
itemNumbersсимволов в ширину. Если это так, вам просто нужно:"$response".padLeft( itemNumber, '0' )И вам совсем не нужно
Один из битов, с которым я борюсь в вашем вопросе, заключается в том, что я не знаю, чтоexamineeResponses.examineeResponses.length()должен делать (кроме как выбрасывать ошибку). Другой - я не уверен, что это то, что вы хотите сделать ; -)Вы не можете обнулить pad Strings with
String.formatв Java или Groovy, вы можете только нуль pad numerics