java - 二进制转字符矩阵帮助

标签 java binary character

仅供引用:这是一个练习作业。我一直在努力,但现在我被困住了。任何提示/帮助将不胜感激。我已经盯着它看了一段时间,但没有取得任何进展。

问题总结: 九枚硬币被放置在一个 3x3 矩阵中,一些面朝上,一些面朝下。 Heads = 0 and tails = 1。每个状态也可以使用二进制数表示。有512种可能性。问题:编写一个程序,要求用户输入 0-511 之间的数字,并显示相应的矩阵,其中包含字符 H 和 T,如下所示:

用户输入数字 7(即 000000111 或 HHHHHHTTT) 显示应该是: 啊啊啊 啊啊啊 T T T

这就是我目前所拥有的。我不一定要答案,我只是想朝着正确的方向前进。谢谢

import java.util.Scanner;

public class converting {
    public static void main(String[] ar) {

    Scanner s = new Scanner(System.in);

        System.out.print("Enter a number between 0 and 511: ");

        int number = s.nextInt();
        if(number <= 511 && number > 0)
        {
             String bin = Integer.toBinaryString(number);
             String tails = bin.replace('1', 'T');

         int count = 0;
         char[] arr = tails.toCharArray();

         for (int i = 0; i < arr.length; i++) {

            System.out.print(arr[i]);
            count++;
            if (count == 3) {
                System.out.println();
                count = 0;
            }
        }
      }
      else{
        System.out.print("Please enter a number between 0 and 511\n");
    }
    }
}

最佳答案

你真的很接近。一些注意事项:

  • Scanner#nextInt 可以抛出异常;优雅地处理它们。
  • 您需要检查 number 是否在范围 (0-511) 内。
  • 一旦有了 bin,您就有了 1-9 个二进制数字 -- 01。你想确保正好有 9 个,所以在前面插入任何缺失的 0
  • 你现在有 9 个 01;你想要 HT。查看String#replace .
  • 您现在有一个包含 9 个 HT 的字符串。分三行输出,每行三个字符。查看String#substring .

关于java - 二进制转字符矩阵帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225678/

相关文章:

java - 删除字符串中的某些字符,Java

java - 语义分析期间的一般错误 : Unsupported class file major version 57

java - 来自资源的 Android RandomAccessFile 使用

python - 通过二进制或 ASCII 上传文本文件都会将其留空吗?

java - 在Java中将字符转换为整数

java - 无法编译个人客户类,构造函数有问题吗?

parsing - Erlang:解码二进制流中的可变长度数据字段

binary - 计算机如何看到 "big numbers"?

SEO在源代码中发出红色字符? > 为什么?语法高亮?浏览器源代码?

java - 自动装箱字符值然后返回空白值