Java 常用工具类(33) : 格式化打印map


import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author: liyue
 * @Date: 2023/05/25/14:49
 * @Description:
 */
public class PrintUtil {

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("sdfsfsffsfsfsljfsfs121231231sfsfFsfsfdf", "121313123");
        map.put("12312313", "1231231");
        map.put("1", "2");
        map.put("1212", "你好");
        map.put("嗨", "你好");
        map.put("嗨", "sdaff");
        print(map);
    }

    /**
     * 打印map,key里面含有中文时会偏移
     */
    public static void print(Map map) {
        // key 和 value 之间的最小间隙
        int interval = 20;
        int max = map.keySet().stream()
                .max(Comparator.comparingInt(String::length))
                .orElse("").toString()
                .length();

        // 打印
        map.keySet().stream()
                .sorted()
                .forEach(k -> {
                    int i = max - k.toString().length() + interval;
                    String join = String.join("", Collections.nCopies(i, " "));
                    System.out.println(String.format("%s%s%s", k, join, map.get(k)));
                });
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值