2017-09-21 44 views
-3

名字如何让名朋友如何获得在Java

但在这里我要采取的第一个名字,即使其输入有与空间

例子: 第一朋友

I输入名称:阿尔文因陀罗

第二个朋友

我输入名字:雷迪Rusmana

输出:

阿尔文

雷迪

请帮我 语法:

package latihan; 

import java.util.Scanner; 

public class LatihanArray { 
    public static void main(String[] args) { 
     int many; 
     String[] friend = new String[100]; 
     Scanner sc = new Scanner(System.in); 
     Scanner scx = new Scanner(System.in); 

     System.out.print("Enter How Many Friends : "); 
     many = sc.nextInt(); 
     for(int i=0;i<n;i++){ 
      System.out.print("Friend Of-"+(i+1)+" : "); 
      friend[i] = scx.nextLine(); 
     } 
     System.out.print("\n"); 
     System.out.println("Initials : "); 
     for(int i=0;i<many;i++){ 
      System.out.println((i+1)+". "+friend[i].charAt(0)); 
     } 
     System.out.print("\n"); 
     System.out.println("4 Letterhead : "); 
     for(int i=0;i<n;i++){ 
      System.out.println((i+1)+". "+friend[i].substring(0,4)); 
     } 
     System.out.println("First Name : "); 
     for(??????){ 
      if(??????){ 
       for(????????){ 
        ???????????????; 
       } 
      } 
     } 
    } 
} 
+1

使用'String.indexOf()'([javadoc的](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#indexOf-int-))来定位所述第一空间,和'String.substring()'([javadoc的](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#substring-int-int-)),以拔出第一个名字。 –

+0

的System.out.println( “名字:”); 为(??????){ 如果(??????){ 为(????????){ ?????????????? ?; }} } 在哪里? –

回答

0

你作为一个字符串"<firstName> <lastName>"(与部分之间的空间符号)输入朋友的姓名。如果你想将它保存为一个字符串,可以使用以下方法:

  1. 正则表达式:(?<firstName>\w+)\s+(?<lastName>\w+)并获得两个部分直接
  2. 分割字符串与空间:String[] parts = friend.split("\s+")并获得parts[0]的名字和parts[1]作为姓氏
  3. 但我强烈建议你使用特殊的类来存储输入数据,因为在一般情况下,如果你需要后处理,这是更好的准备所有的数据吧。我给你简单的例子来显示id。你可以看看它,也许有一些修正使用它(因为我不知道你的要求):

朋友数据持有者

final class Friend { 
    private final int id; 
    private final String firstName; 
    private final String lastName; 

    public Friend(int id, String firstName, String lastName) { 
     this.id = id; 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    public String getInitials() { 
     return String.valueOf(firstName.charAt(0)) + lastName.charAt(0); 
    } 

    public String getLetterHead() { 
     return firstName.substring(0, 4); 
    } 
} 

方法来读取和打印数据(从你的问题)

List<Friend> friends = new ArrayList<>(); 
Scanner scan = new Scanner(System.in); 

System.out.print("Enter How Many Friends : "); 
int many = scan.nextInt(); 

for (int i = 0; i < many; i++) { 
    System.out.print("Friend Of-" + (i + 1) + " : "); 
    String firstName = scan.next(); 
    String lastName = scan.next(); 
    friends.add(new Friend(i + 1, firstName, lastName)); 
} 

scan.close(); 

System.out.println("\nInitials: "); 
for (Friend friend : friends) 
    System.out.println(String.format("%d. %s", friend.id, friend.getInitials())); 

System.out.println("\n4 Letterhead: "); 
for (Friend friend : friends) 
    System.out.println(String.format("%d. %s", friend.id, friend.getLetterHead())); 

System.out.println("\nFirst Name: "); 
for (Friend friend : friends) 
    System.out.println(String.format("%d. %s", friend.id, friend.firstName)); 

System.out.println("\nLast Name: "); 
for (Friend friend : friends) 
    System.out.println(String.format("%d. %s", friend.id, friend.lastName)); 
    } 
} 

至于导致你看到下面的控制台:

Enter How Many Friends : 2 
Friend Of-1 : Alvin Indra 
Friend Of-2 : Redi Rusmana 

Initials: 
1. AI 
2. RR 

4 Letterhead: 
1. Alvi 
2. Redi 

First Name: 
1. Alvin 
2. Redi 

Last Name: 
1. Indra 
2. Rusmana