为了账号安全,请及时绑定邮箱和手机立即绑定

将包含八进制数的字符串转换为 UTF-8 文本

将包含八进制数的字符串转换为 UTF-8 文本

跃然一笑 2021-10-06 10:57:11
你好,这是我在这个网站上的第一个问题。我正在制作一个将文本转换为八进制,但又将八进制转换为 utf-8 文本的程序。150 145 154 154 157 40 167 157 162 154 144 应该解码为 hello world这是我的代码source = source.replaceAll(" ", "");int integer = Integer.parseInt(source,8);List<Byte> queue = new LinkedList<>();for (String s : source.split(" ")) {    if (s != null && s != "") {            for (byte b : s.getBytes()) {                    queue.add(b);            }    }}Byte[] byteArr = new Byte[queue.size()];byteArr = queue.toArray(byteArr);byte[] b2 = new byte[byteArr.length];for (int i = 0; i < byteArr.length; i++){    b2[i] = byteArr[i];}String answer = new String(b2, StandardCharsets.UTF_8);edittextbinary.setText(answer);它只返回相同的八进制值并且不解码。我需要帮助来提取八进制数并将它们转换为十进制然后解码为 UTF-8
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

我希望这可以帮助你。


public static void main(String[] args) {


  String octalString = "150 145 154 154 157 40 167 157 162 154 144";


  StringTokenizer tokeniser = new StringTokenizer(octalString);

  int len = tokeniser.countTokens();

  int[] octalArray = new int[len];

  byte[] octalByteArray = new byte[len];


  for (int i = 0; tokeniser.hasMoreTokens(); i++) {

    octalArray[i] = Integer.parseInt(tokeniser.nextToken(),8);

    octalByteArray[i] = (byte) octalArray[i];

  }

  System.out.println(new String(octalByteArray, "UTF-8"));

}


查看完整回答
反对 回复 2021-10-06
  • 1 回答
  • 0 关注
  • 521 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信