gpt4 book ai didi

java - 为什么我的代码首先打印一个空行?

转载 作者:行者123 更新时间:2023-12-02 06:38:01 25 4
gpt4 key购买 nike

我有一个程序,它从文本文件中获取输入并显示此 1

public static void main(String args[])
{

Scanner scan = new Scanner(System.in);
int numLabels = 0;
if(scan.hasNextInt())
{
numLabels = scan.nextInt();
scan.nextLine();
}
else
{
System.out.println("Error! Invalid input.");
System.exit(0);
}

String[] label = new String[numLabels];
int[] data = new int[numLabels];

for(int i=0; i<numLabels*2; i++)
{
if (i<numLabels)
{
label[i] = scan.nextLine();
}
if (i >= numLabels)
{
if(scan.hasNextInt())
{
data[i-numLabels] = scan.nextInt();
}
else
{
System.out.print("Error! Invalid input.");
System.exit(0);
}
}
}

for(int i=0; i<numLabels; i++)
{

int width = 0;
for(int j=0; j<label.length; j++)
{
if(width<label[j].length()) width=label[j].length();
}

String a = "";

for(int j=0; j<data[i]; j++)
{
a = a + "*";
if(j==(data[i]-1)) System.out.println();
}
System.out.printf("%" + width + "s %s", label[i], a);
}
}

它正在做我想做的事情,但是开头有一个空行。这是很小的问题,但我想知道它为什么会出现,以便立即修复它并供将来引用。

最佳答案

这是因为这里的这一行:

if(j==(data[i]-1)) System.out.println();

此外,通过将新行放入循环内,我认为当您尝试绘制计数为 0 的内容时,它实际上会产生错误的结果。

如果您想删除它,请在条形图的每一行之后打印换行符:

String a = "";

for(int j=0; j<data[i]; j++)
{
a = a + "*";
}
System.out.printf("%" + width + "s %s\n", label[i], a);

关于java - 为什么我的代码首先打印一个空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439329/

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