2011-10-01 26 views
-1

的缩写我刚开始的Java编程和此刻的我做了基本的东西。我遇到了一个我无法解决的问题,也没有找到任何答案,所以我想你可能会帮我一把。我想写一个程序来提示用户输入他们的全名(名,姓和名)并输出他们的首字母缩写。算法输出名称

假设用户总是类型的三个名字,不包含任何不必要的空格。因此,输入数据将总是如下所示:名称中间名姓氏

我的一些代码已经完成并停留在那里,因为我得到的是代码中的字母数字,而不是字母本身。

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

'int initials2 = name.'后面缺少一些代码,请修复 –

+2

这是一个问答网站,**不是**论坛。设置一个更合适的标题。 –

+0

如果这是作业,请将其标记为 – hvgotcodes

回答

3

用户将输入一个字符串像

“倒数第一中间”

所以因此,你需要从字符串获得每个字。

split战利品。

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

2

首先,nextLine函数将返回全名。首先,你需要.split()字符串name上的一个空格,也许。这需要来自用户的格式正确的字符串,但我不担心这一点。

一旦分割字符串,它返回一个字符串数组。如果用户误将它们放入,您可以对该阵列执行for循环。

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()); 
+0

你应该真的想'教他钓鱼'而不是'给他一条鱼'。 – hvgotcodes

+0

+1,因为我看不到投票的理由。 –

+0

@hvgotcodes在某些情况下,我会同意,但他也表示他也在做非常基本的事情。如果他真的对学习有兴趣,他可以选择学习代码所说的内容,这将通过他自己的逻辑推理来教他更多。 – DavidAndroidDev

1

使用字符串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); 

请注意,上述假定用户输入了正确的名称数量。你需要做一些检查或检查,如果你需要防止用户做“怪异”的事情。