输出名称首字母的算法

时间:2011-10-01 15:09:51

标签: java

我刚刚开始编程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);


     }
}

3 个答案:

答案 0 :(得分:3)

用户将输入类似

的字符串

“第一中间最后一次”

所以你需要从字符串中获取每个字。

split点击。

在获得用户输入数据的每个单词后,您需要使用loop来获取名称每个部分的第一个字母。

答案 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);

请注意,以上假设用户输入了正确数量的名称。你需要做一些捕捉或检查是否需要防止用户做“奇怪”的事情。