使用 nextLine() 获取 Java 中的名称长度
Getting length of names in Java with nextLine()
我对 Java 很陌生。我是第一个 Java class,我们只是在做基础工作。我应该编写一个程序,提示用户使用 spaces 输入他们的名字、中间名和姓氏。然后以全部大写显示名字的长度、中间名的长度、首字母和全名。这是 class 示例
示例输出:
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 时,我必须一次输入一个名字 space最后按回车键输入下一个名字。它还将中间首字母的长度显示为 4 而不是 3。我知道只需输入一个字符串名称 = input.nextLine(),我就可以将所有输入都放在一行上,这允许我的输入格式寻找,但如果我这样做,我不知道如何获得中间名或首字母的长度。抱歉,这是一个愚蠢的问题,但这是我的第一个 Java class,我们只是在学习基础知识。
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());
}
}
这是有效的更新代码,唯一的问题是它没有将全名输出中的 space 计算为 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();
您在这里阅读的是三行单独的内容,这就是为什么您必须在名称的每一部分之间按回车键。相反,您应该立即阅读整个名称:
String name = input.nextLine();
现在您需要将名称解析为单独的部分。我会把这个留给你弄清楚该怎么做。您应该查看 the documentation of the String
class 以找到可能有助于完成问题解决的任何函数。
看看你是怎么做到的(许多例子中的一个)- 也许这对你将来有帮助,因为你可能还不知道数组(我不知道你是第一个class,我在阅读所有内容之前就解决了这个问题 - 顺便说一下,对不起!)
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");
//Here you will have your names without " ", then its length is 2 characters shorter
String[] names = input.nextLine().split(" ");
//As your names are in an array now, you can get then directly
System.out.println(names[0].length() + names[1].length() + names[2].length());
System.out.println("The length of your middle name is " + names[1].length() + " characters");
System.out.println("Your initials are " + names[0].charAt(0) + names[1].charAt(0) +names[2].charAt(0));
System.out.println(names[0].toUpperCase() + " " + names[1].toUpperCase() + " " + names[2].toUpperCase());
//Peggy Sue Palmer
//Considering you did this: String[] names = input.nextLine().split(" ");
//your array is ["Peggy", "Sue", "Palmer"]
//then array[0] is "Peggy"
//then "Peggy".length == 5
//plus: names[0].charAt(0) means "Peggy".charAt(0) which is "P"
System.out.println("The length of your first name is " + names[0].length() + " characters");
System.out.println("The initial of your first name is " + names[0].charAt(0));
}
}
我对 Java 很陌生。我是第一个 Java class,我们只是在做基础工作。我应该编写一个程序,提示用户使用 spaces 输入他们的名字、中间名和姓氏。然后以全部大写显示名字的长度、中间名的长度、首字母和全名。这是 class 示例
示例输出:
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 时,我必须一次输入一个名字 space最后按回车键输入下一个名字。它还将中间首字母的长度显示为 4 而不是 3。我知道只需输入一个字符串名称 = input.nextLine(),我就可以将所有输入都放在一行上,这允许我的输入格式寻找,但如果我这样做,我不知道如何获得中间名或首字母的长度。抱歉,这是一个愚蠢的问题,但这是我的第一个 Java class,我们只是在学习基础知识。
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());
}
}
这是有效的更新代码,唯一的问题是它没有将全名输出中的 space 计算为 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();
您在这里阅读的是三行单独的内容,这就是为什么您必须在名称的每一部分之间按回车键。相反,您应该立即阅读整个名称:
String name = input.nextLine();
现在您需要将名称解析为单独的部分。我会把这个留给你弄清楚该怎么做。您应该查看 the documentation of the String
class 以找到可能有助于完成问题解决的任何函数。
看看你是怎么做到的(许多例子中的一个)- 也许这对你将来有帮助,因为你可能还不知道数组(我不知道你是第一个class,我在阅读所有内容之前就解决了这个问题 - 顺便说一下,对不起!)
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");
//Here you will have your names without " ", then its length is 2 characters shorter
String[] names = input.nextLine().split(" ");
//As your names are in an array now, you can get then directly
System.out.println(names[0].length() + names[1].length() + names[2].length());
System.out.println("The length of your middle name is " + names[1].length() + " characters");
System.out.println("Your initials are " + names[0].charAt(0) + names[1].charAt(0) +names[2].charAt(0));
System.out.println(names[0].toUpperCase() + " " + names[1].toUpperCase() + " " + names[2].toUpperCase());
//Peggy Sue Palmer
//Considering you did this: String[] names = input.nextLine().split(" ");
//your array is ["Peggy", "Sue", "Palmer"]
//then array[0] is "Peggy"
//then "Peggy".length == 5
//plus: names[0].charAt(0) means "Peggy".charAt(0) which is "P"
System.out.println("The length of your first name is " + names[0].length() + " characters");
System.out.println("The initial of your first name is " + names[0].charAt(0));
}
}