String.format ("% 1 $ -" + длина + "s", ввод);Что здесь происходит? - PullRequest
0 голосов
/ 22 декабря 2018

Я изучаю Java-ядро, и я наткнулся на этот код, который помог мне, и я знаю результат этого метода, но не могу понять, что здесь происходит: я запускаю метод с параметрами (12345,8) и какВ результате я получаю '12345___' (с пробелами, общая длина строки 8 символов)

public static String padRight(String input, int length) {
    if (input.length() < length) {
        return String.format("%1$-" + length + "s", input); // %1$ refers to the first substitution.
    } else {
        return input.substring(0, length);
    }
}

% 1 $ здесь относится к первому аргументу после запятой, который является 'input'

- после $ - что это?Результат будет выровнен по левому краю. Значения выровнены по левой границе?

  • + длина + "s" - эти операции я не могу понять: + - Результат всегда будет включать знак ..какой знак?длина?

и что здесь за "s"?

Пожалуйста, объясните, если кто-то понимает это полностью.

Источники, которые я использовал: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html https://dzone.com/articles/java-string-format-examples

...