有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将位转换为Base64字符

我需要将一个二进制字符串(“110100”,十进制52)转换成相应的Base64字符,我知道它是“0”。Java中有什么方法可以做到这一点吗?我读了多本base 64指南,但我找不到答案

为了澄清,转换表如下:https://www.lifewire.com/base64-encoding-overview-1166412(Base64编码表部分)我想要52,将其转换为“0”字符

非常感谢


共 (2) 个答案

  1. # 1 楼答案

    首先需要将二进制字符串转换为字节数组。关于如何实现这一点,有很多帖子,但在伪代码中,它将如下所示

      Read up to 4 characters;
    
      Byte.parseByte(chars, 2);
    
      Append to byte array;
    

    然后你可以使用Base64。编码器对字节进行编码

  2. # 2 楼答案

    由于字节的长度为8位,Base64通过仅获取6位来构成其值,因此我能想到的最简单的方法是在所需字符的开头添加两个字符,并仅获取结果的最后一个字符:

    String encode = String.format("00%s", (char) Integer.parseInt("110100", 2));
    String encoded = new String(Base64.getEncoder().encode(encode.getBytes()));
    System.out.println(encoded.charAt(encoded.length() - 1));
    // Prints: 0