关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
您能得到一个建议吗,如何在java中修剪system.out.printf中的空间:
public class Part3
{
public static void main(String[] args)
{
int N = 10;
int ct=0,n=0,i=1,j=1;
while(n<N)
{
j=1;
ct=0;
while(j<=i)
{
if(i%j==0)
ct++;
j++;
}
if(ct==2)
{
System.out.printf("%d%s", i);
n++;
}
i++;
}
}
}
当前结果是最后一个空格: 2 3 5 7 11 13 17 19 23 29
预期结果没有最后空格: 2 3 5 7 11 13 17 19 23 29
致以最诚挚的问候
4条答案
按热度按时间3lxsmp7m1#
拆下
%s
并在每个数字之后执行检查,以测试是否在循环的最后一次迭代中。如果您不在上一次迭代中,请打印一个空格。x7rlezfr2#
我更喜欢“在除第一个之外的所有对象之前添加分隔符”的方法。
在大纲中,并不是真的试图将其Map到您的具体案例,它是这样的:
我发现这比编写条件来确定这是否是第一个(或最后一个)元素更紧凑。
u4dcyp6a3#
在内部附加以下条件
if(ct==2) {
:bvhaajcl4#
当打印分开的输出时,例如像这里这样分开的空间,并不总是容易确定最后一个值何时打印。在这里,因为您正打印10个值,但是如果代码打印的素数小于120呢?在打印最后一个素数(113)时,我们不知道是否还有更多的素数。
因此,更容易在值之前打印分隔符,并抑制第一个分隔符:
而不是使用
boolean
,您可以使用String
变量来携带分隔符,并最初使其成为空字符串。代码更简洁,但这是否是一个更好的解决方案是一个意见问题: