java - 使用循环从 int 值打印字符,每行输出所需的数字数量
问题描述
我在使用以下代码时遇到问题:
//Program 6.12
public class Ex6_12 {
public static void printChars(char ch1, char ch2, int numberPerLine) {
for (int i = ch1; i>ch2; i++) {
for (int j = 0; j<=numberPerLine; j++) {
System.out.printf("%c ", (char)(i));
}
System.out.println("");
}
}
public static void main (String[] args) {
printChars('1', 'Z', 10);
}
}
前面的代码什么都没有打印出来,我希望它以每行选定的字符数将选定的字符打印到不同的选定字符。不确定我在哪里犯了错误。
对于这个输入,我想要输出:
1 2 3 4 5 6 7 8 9 :
; < = > ? @ A B C D
E F G H I J K L M N
O P Q R S T U V W X
Y
(它的范围从第一个char
通过到小于最后一个,char
一行中的 's与 一样多numberPerLine
)
解决方案
为此,您不需要两个循环。由于您i
在内部循环中使用,但从不增加它,您会得到相同的字母打印numberPerLine
时间。只需检查一下模数numberPerLine
是否等于numberPerLine - 1
(如果已numberPerLine
打印元素):
public static void printChars(char ch1, char ch2, int numberPerLine) {
for (char i = ch1; i<ch2; i++) {
System.out.printf("%c ", i);
if((i-ch1) % numberPerLine == numberPerLine-1) {
System.out.println("");
}
}
}
这将给出:
1 2 3 4 5 6 7 8 9 :
; < = > ? @ A B C D
E F G H I J K L M N
O P Q R S T U V W X
Y
推荐阅读
- ios - iOS应用程序在后台/终止时的持久连接?
- python - 在 Python 中从单行 txt 文件创建二维数组
- r - R循环,通过列表和向量并连接每个元素
- html - 是什么让圆点不显示在圆形边框的中间
- python - 我肯定在我的 Windows 上安装了 PyAudio,但是当我尝试安装到 Pycharm 中时,我收到了这条消息?
- python - 我得到一个 AttributeError: 'NoneType' 对象在我构建的排行榜命令中没有属性 'name'
- java - controlfx bindAutoCompletion 崩溃 javafx 代码 Java 版本(java 1.11)
- node.js - Mongodb Docker 初始化配置
- android - listview 项目未在自定义适配器的 getview 方法中显示分配的值
- mysql - Angular9后端中的MySQL视图错误