Как использовать строку.формат в 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