java - 如何以盒子图案或任何类型的图案打印?
问题描述
我的意思是当我打印时,例如,埃拉托色尼筛,它只是用println()
. 使用print()
,它只是水平打印另一条长线。我想要它,以便有某种你无法跨越的线。
我附上了一个片段,为了更清晰的目标,我画了一个红色框,我希望数字在哪里停止,从哪里开始。
解决方案
有很多方法可以实现这一目标。这是一种方法。假设您正在打印从 1 到的自然数,n
并且您只需要10 个自然数在一行中,那么您可以这样做:
for (int i = 1; i <= n; i++) {
System.out.print(i + " ");
//Add new line if there are 10 elements in a row
if (i % 10 == 0) System.out.println();
}
如果您正在使用Sieve of Eratosthenes
,则要打印的数字不遵循常规顺序。在这种情况下,您可以计算number of numbers
打印并相应地添加新行。
假设您有一个boolean
数组numbers
,其中如果数组的索引表示素数,则在该索引true
处存储或false
存储。在这种情况下,您可以使用这个:
int count = 0;
for (int i = 1; i <= n; i++) {
if (numbers[i]) {
System.out.print(i + " ");
count++;
}
if (count == 10) {
System.out.println();
count = 0;
}
}
我应该补充一点,如果您仍想在输出中添加更多对称性以便有适当的间距并且元素出现在另一个下方,您可以替换 System.out.print (i + " ")
为
System.out.print (i + "\t")
.
输出会看起来更漂亮,并且更具可读性。
我希望我对你有所帮助。
推荐阅读
- elasticsearch - Elasticsearch 根据 2 个标准返回文档,其中一个基于另一个
- angular - 使用 Open ID Connect 访问令牌保护 Web API
- javascript - 如何用点将日期 19990813 (YYYY-MM-DD) 格式化为 13.08.1999 (DD-MM-YYYY)?
- ios - 获取用户当前位置/获取经纬度值 watchkit/ios swift
- vba - 通过 VBA 打开由查询生成的报表,并为查询输入数据以创建表单
- nginx - ngix 重定向到 ubuntu 服务器中的非 www
- php - 在 Debian 上安装 php7.1-bcmath
- python - 有没有办法在没有终端的情况下使用 glade 应用程序?
- jquery - 如何修复布尔检查并检查 var 是否未定义
- python - 读取 \yyyy\mm\dd\HH\MM\ 范围内的文件