gpt4 book ai didi

java - Printf 在 Java 1.7 中无法正常运行

转载 作者:行者123 更新时间:2023-11-30 08:54:05 25 4
gpt4 key购买 nike

我正在为学校做作业,要求程序通过各种方法(姓氏、名字、地址等)获取用户的个人信息,并通过 main 方法输出它们。

问题:printf 语句在显示名称时工作正常,但在显示其余用户信息时,格式不正确。

import java.util.Scanner;

public class PersonalInfo {

public static String lastName, firstName, address, email, phone;
public static Scanner kb = new Scanner(System.in);

public static void main(String[] args)
{
getLastName();
getFirstName();
getAddress();
getEmail();
getPhone();

displayName();
displayAddress();
displayEmailPhone();
}


//--------GET methods--------
public static void getLastName()
{
System.out.print("What is the last name of the user? ");
lastName = kb.nextLine();
}

public static void getFirstName()
{
System.out.print("Now enter the first name: ");
firstName = kb.nextLine();
}

public static void getAddress()
{
System.out.print("Now enter the address: ");
address = kb.nextLine();
}

public static void getEmail()
{
System.out.print("Now enter the email: ");
email = kb.nextLine();
}

public static void getPhone()
{
System.out.print("Lastly, enter the phone number in the format xxx-xxx-
xxxx: ");
phone = kb.nextLine();
}

//--------DISPLAY methods--------
public static void displayName()
{
System.out.printf("\nName:%15s %s", firstName, lastName);
}

public static void displayAddress()
{
System.out.printf("\nAddress:%12s", address);
}

public static void displayEmailPhone()
{
System.out.printf("\nEmail:%14s", email);
System.out.printf("\nPhone:%14s", phone);
}
}

输出结果:

Name:           John Smith
Address:1234 street, city, state 12345
Email:useremail@email.com
Phone: 123-456-7890

可能是什么问题?我希望其余信息与名称一致。

最佳答案

因此,当您说“%15s”时,您是在说要使字段宽度为 15 个字符,如果需要,可以在前面加上空格。这适用于名称 - 有一堆空格,然后是名称。

不过,地址远远超过 14 个字符,因此您在地址前面没有空格。 (请注意,它不会在 14 处截断;14 只是此处的最小宽度。)

虽然您还没有定义“排队”的意思……您想要“John”正下方的“1234”吗?在这种情况下,您需要做的是将这些空格添加到 printf 字符串中,并跳过宽度说明符(将其更改为“%s”而不是“%15s”)。

如果相反,您想要在“Smith”下使用邮政编码“12345”,那么您将需要大大增加宽度说明符。宽度说明符加上前缀(“名称:”或“地址:”)需要加起来相同的数字。例如,使用“%50s”作为名称,使用“%47s”作为地址(因为“地址:”中的字符比“名称:”中的字符多三个)。

关于java - Printf 在 Java 1.7 中无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545941/

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