You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Python的Base32字符转5bit值代码改写为Java,求对应格式化语法

将Python的Base32字符转5bit代码改写为Java

需求说明

原Python代码的作用是把自定义Base32字母表中的每个字符,映射为对应的5位二进制字符串(索引0对应00000,索引31对应11111)——因为字母表共32个字符,正好用5位二进制完整表示。

Java实现代码

import java.util.HashMap;
import java.util.Map;

public class Base32BitMapper {
    public static void main(String[] args) {
        String wordSafeAlphabet = "23456789CFGHJMPQRVWXcfghjmpqrvwx";
        Map<Character, String> charToBitMap = new HashMap<>();
        
        for (int i = 0; i < wordSafeAlphabet.length(); i++) {
            char c = wordSafeAlphabet.charAt(i);
            // 将整数i转为5位二进制字符串,不足5位时前面补0
            String bitStr = String.format("%5s", Integer.toBinaryString(i)).replace(' ', '0');
            charToBitMap.put(c, bitStr);
        }
        
        // 可选:打印映射结果验证
        // charToBitMap.forEach((k, v) -> System.out.println(k + ": " + v));
    }
}

关键语法对应说明

Python中的"{0:05b}".format(i)是把整数格式化为5位补0的二进制字符串,Java中没有直接匹配的格式化符,但可以通过两步实现等价效果:

  1. Integer.toBinaryString(i):将整数转为无前置0的二进制字符串
  2. String.format("%5s", ...).replace(' ', '0'):把二进制字符串补空格到5位长度,再将空格替换为0,得到带前置0的5位二进制字符串

内容的提问来源于stack exchange,提问作者D.S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:51:13