我刚刚开始编程java,目前我正在做基本的事情。我遇到了一个我无法解决的问题,并没有找到任何答案,所以我想你可以帮我一把。我想编写一个程序来提示用户输入他们的全名(名字,姓氏和姓氏)并输出他们的姓名首字母。
假设用户总是键入三个名称,并且不包含任何不必要的空格。因此输入数据将始终如下所示:名称Middlename Surname
我的一些代码已经完成并且卡在那里,因为我得到了代码中的字母而不是字母本身。
import java.util.*;
public class Initials
{
public static void main (String[] args)
{
//create Scanner to read in data
Scanner myKeyboard = new Scanner(System.in);
//prompt user for input – use print to leave cursor on line
System.out.print("Please enter Your full Name , Middle name And Surname: ");
String name = myKeyboard.nextLine();
String initials1 = name.substring(0, 1);
int initials2 = name.
//output Initials
System.out.println ("Initials Are " + initials1 + initials2 + initials3);
}
}
答案 0 :(得分:3)
答案 1 :(得分:2)
首先,nextLine函数将返回全名。首先,您可能需要.split()
空格上的name
字符串StringBuilder builder = new StringBuilder(3);
for(int i = 0; i < splitStringArray.length; i++)
{
builder.append(splitStringArray[i].substring(0,1));
}
System.out.println("Initials Are " + builder.toString());
。这需要用户正确格式化的字符串,但我不会担心这一点。
分割字符串后,它会返回一个字符串数组。如果用户正确地将它们放入,则可以对阵列执行for循环。
{{1}}
答案 2 :(得分:1)
使用String split()
方法。这允许您使用特定的正则表达式拆分字符串(例如,按空格字符拆分字符串)。返回的值是包含每个拆分值的数组。有关方法,请参阅documentation。
Scanner myKeyboard = new Scanner(System.in);
System.out.print("Please enter Your full Name , Middle name And Surname: ");
String name = myKeyboard.nextLine();
String[] nameParts = name.split(" ");
char firstInitial = nameParts[0].charAt(0);
char middleInitial = nameParts[1].charAt(0);
char lastInitial = nameParts[2].charAt(0);
System.out.println ("Initials Are " + firstInitial + middleInitial + lastInitial);
请注意,以上假设用户输入了正确数量的名称。你需要做一些捕捉或检查是否需要防止用户做“奇怪”的事情。