【问题标题】:Displaying a ascii table显示 ascii 表
【发布时间】:2016-04-23 04:04:22
【问题描述】:

我正在尝试以 16 行显示一个 ascii 表,左侧的一列从 32 开始到 240 结束。问题是我无法让表超出第一个 16 个字符,它只是不断重复同一行。这是代码。 公共静态无效主要(字符串[]参数){ 整数计数器 = 0;

    for (int i = 32; i <= 255; i = i + 16) {

        if(i < 112)
            System.out.print(" ");
        System.out.print(i + " " );


        for (int j = 32; j <= 47; j++) {
            counter++;
            System.out.print((char)j );
            if(counter % 16 == 0)
            System.out.print((char)j );

            else
                System.out.print((char)j + " ");


        }
        System.out.println();

这是输出。

32    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
 48    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
 64    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
 80    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
 96    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
112    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
128    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
144    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
160    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
176    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
192    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
208    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
224    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
240    !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. //
enter code here

【问题讨论】:

  • 不应该 ji 的值而变化吗?类似for (int j = i; j &lt;= i+15; j++)
  • 您的代码更改有效,但每个字符都加倍。
  • counter++; 之后的评论行System.out.print((char) j); 可能会有所帮助,因为它总是会打印出来。
  • 你说得对,我把它放在那里试图找出为什么代码不起作用忘记删除它。无论如何,非常感谢您的帮助!
  • 这不是 ASCII 字符集,它只有 128 个代码点。 Java 的 char 是一个 Unicode/UTF-16 代码单元。在您使用的范围内,对应的 Unicode 代码点只需要一个 UTF-16 代码单元,因此您的使用似乎没问题。顺便说一句——你可以通过打印control pictures for ␀ to ␟来获得乐趣。

标签: java


【解决方案1】:

内部循环是错误的。你总是从j=32开始,但你应该从j=i开始,我相信。

也停在j &lt;= i+15

【讨论】:

    猜你喜欢
    • 2014-06-18
    • 2013-03-18
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多