我对 Java 很陌生。我正在上第一堂 Java 课,我们只是在学习基础知识。我应该编写一个程序,提示用户输入带有空格的名字、中间名和姓氏。然后以全部大写形式显示名字的长度、中间名的长度、首字母缩写和全名。这是类示例
示例输出:
Enter a first name middle name and surname
Peggy Sue Palmer
Length of your name: 16 characters
Length of your middle name: 3 characters
Your initials are PSP
PEGGY SUE PALMER
到目前为止,我已经编写了一些代码,并且能够正确获得一些输出,但是当我进入 Peggy Sue Palmer 时,我必须一次输入一个名称,末尾加一个空格,然后按Enter 输入下一个名称。它还将中间首字母的长度显示为 4 而不是 3。我知道我可以通过一个输入 String name = input.nextLine() 将所有输入全部放在一行上,这允许我正在寻找的输入格式但如果我这样做,我不知道如何获得中间名或缩写的长度。抱歉,这是一个愚蠢的问题,但这是我的第一堂 Java 课,我们只是学习基础知识。
package tracy2prog1;
import java.util.Scanner;
public class Tracy2prog1 {
public static void main(String[] args) {
//create new scanner class
Scanner input = new Scanner(System.in);
//prompt user to enter first middle and last name
System.out.println("Please enter your first middle and last name with spaces between them");
String firstname = input.nextLine();
String middlename = input.nextLine();
String lastname = input.nextLine();
System.out.println(firstname.length() + middlename.length() + lastname.length());
System.out.println("The length of your middle name is " + middlename.length() + " characters");
System.out.println("Your initials are " + firstname.charAt(0) + middlename.charAt(0) +lastname.charAt(0));
System.out.println(firstname.toUpperCase() + middlename.toUpperCase() + lastname.toUpperCase());
}
}
这是有效的更新代码,唯一的问题是它没有将全名输出中的空格计为 16,我得到了 14。
package tracy2prog2;
import java.util.Scanner;
public class Tracy2prog2 {
public static void main(String[] args) {
//create new scanner class
Scanner input = new Scanner(System.in);
//prompt user to enter first middle and last name
System.out.println("Please enter your first middle and last name with spaces between them");
String firstname = input.next();
String middlename = input.next();
String lastname = input.next();
System.out.print("Your name is ");
System.out.println(firstname.length() + middlename.length() + lastname.length() + " characters");
System.out.println("The length of your middle name is " + middlename.length() + " characters");
System.out.println("Your initials are " + firstname.charAt(0) + middlename.charAt(0) +lastname.charAt(0));
System.out.println(firstname.toUpperCase() + " " + middlename.toUpperCase() + " " + lastname.toUpperCase());
}
}
最佳答案
I have to input the name one at a time with a space at the end and then press enter to input the next name.
让我们看看如何获得该名称:
String firstname = input.nextLine();
String middlename = input.nextLine();
String lastname = input.nextLine();
您正在阅读三行单独的行,这就是为什么您必须在名称的每个部分之间按 Enter 键。相反,您应该立即阅读整个名称:
String name = input.nextLine();
现在您需要将名称解析为单独的部分。我将把这个留给你来弄清楚该怎么做。你应该看看the documentation of the String
class找到任何可能有助于解决问题的函数。
关于java - Java 中使用 nextLine() 获取名称长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52881728/