gpt4 book ai didi

Java - 如何在用户删除的两个字符之间打印字符?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:31 24 4
gpt4 key购买 nike

这个程序应该从用户那里获取两个字符值以及他们想要显示的每行字符值的数量。然后输出用户输入的两个字符值之间的字符值和每行各自的字符。这是我的代码:

import java.util.Scanner;

public class DisplayCharactersInBetween {
public static void main(String[] args) {

Scanner console = new Scanner(System.in);
String ch1, ch2;
int charsPerLine;
System.out.print("Between what two characters do you wish to print: ");
ch1 = console.next();
ch2 = console.next();
System.out.print("And how many chars per line: ");
charsPerLine = console.nextInt();
printChars(ch1.charAt(0), ch2.charAt(0), charsPerLine);
console.close();
}

public static void printChars(char ch1, char ch2, int charsPerLine) {
int difference = (int)(ch2 - ch1);
for (int i = 0; i < difference; i++) {
System.out.print(++ch1 + " ");
if (ch1 == ch2)
break;
if (i % charsPerLine == 0)
System.out.print(++ch1 + "\n");
}
}

}

例如我选择a和z。我还选择 4 作为每行的数量。我首先不明白为什么第一行只有两个字母,而后面几行有5个字母。

这是我的输出:

b c

d e f g h

i j k l m

n o p q r

s t u v w

x y z

最佳答案

你可以尝试这些修改,同时思考问题的逻辑。这比您想象的要容易:

代码:

public static void printChars(char ch1, char ch2, int charsPerLine)
{
int difference = (int) (ch2 - ch1);

for (int i = 1; i < difference; i++) { // Adjust the range, start in 1 so it doesn't print another line when i == 0
System.out.print(++ch1 + " ");
if (i % charsPerLine == 0) { // Just check if (i % 4 == 0)
System.out.print("\n");
}
}
}

而且你不需要检查 ch1 == ch2 因为 for 语句会为你“做”它。

输出:

b c d e 
f g h i
j k l m
n o p q
r s t u
v w x y

这会打印 az 之间的所有字符。

关于Java - 如何在用户删除的两个字符之间打印字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20733596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com