2017-09-21 46 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