0

写一些显示 1-1000 之间的素数、1-1000 之间的双素数和 1-10,000 之间的完美数的东西。编写这些方法没有任何问题,但 JOptionPane 对话框现在让我发疯。努力尝试在 1-1000 之间的素数每行显示 10 个数字

        if( userChoice == 1 )
        {
            message = String.format( "Prime Numbers between 1-1,000 are:");
            for( number = 3; number <= 1000; number++ )
            {
                if( trueCounter % 10 == 0 )
                    message += "\n";

                prime = isPrime( number );
                if( prime == true )
                {
                    message += " " + number;
                    ++trueCounter;
                }
            }
            JOptionPane.showMessageDialog( null, message );
        }

这就是我所拥有的,它显示所有数字并每行显示 10 个数字....但它还会在其间显示随机数量的额外行,因此对话框高度最终变得太大。它甚至是一组额外的行,这真的让我感到困惑......就像这样

{3 5 7 11 13 17 19 23 29 31
(8 new lines)
37 41 43 47 53 59 61 67 71 73
(10 new lines..)

请帮忙!

4

2 回答 2

1

改变这个:

            if( trueCounter % 10 == 0 )
                message += "\n";

            prime = isPrime( number );
            if( prime == true )
            {
                message += " " + number;
                ++trueCounter;
            }

对此:

            prime = isPrime( number );
            if( prime == true )
            {
                message += " " + number;
                ++trueCounter;

                if( trueCounter % 10 == 0 )
                    message += "\n";
            }

如果没有,您将在第 0、第 10、第 20、... 元素之后添加很多换行符。

Om,我会考虑使用StringBuilder

于 2013-03-27T21:52:18.290 回答
0

我一直在与这种事情作斗争。我想知道您是否在自动换行和回车方面遇到问题。

要对此进行测试,请将\n代码中的 替换为字符,x然后查看行为。

如果您仍然得到新行,它们可能是自动换行,而不是\n.

只是一个猜测。希望有帮助。

于 2013-03-27T21:51:05.617 回答