Can we use String.format() to pad/prefix with a character with desired length?

后端 未结 5 735
广开言路
广开言路 2021-01-04 10:13

Can java.lang.String.format(String str, String str1) be used for adding prefix of a particular character.

I could do this for a number like:



        
5条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-04 10:44

    I just add some Java 8 code if someone need it in future:

    public class App {
        public static void main(String[] args) {
            System.out.println(leftpad("m m", 2, '@'));
            System.out.println(leftpad("m m", 5, '@'));
        }
    
        static String leftpad(String s, int nb, char pad) {
            return Optional.of(nb - s.length())
                    .filter(i -> i > 0)
                    .map(i-> String.format("%" + i + "s", "").replace(" ", pad + "") + s)
                    .orElse(s);
        }
    
    }
    

    This version supports adding any char as padding

提交回复
热议问题