2014-09-22 74 views
1

如何從鍵盤輸入字符串並重新排列它?例如,在我的情況下,我要求用戶以「姓氏,名字」格式導入某人的姓名。然後我必須將其改爲「名姓」。如何將Java中的字符串從全名分隔爲姓氏和名字?

這是我到目前爲止有:

private void setName() { 
    Scanner in = new Scanner(System.in); 
    System.out.println("Please enter the last name followed by the first name of" + 
      "a student: "); 
    name = in.nextLine(); 
} 
+0

查看'String'上的'split()'方法。 – 2014-09-22 23:07:19

+0

預期的輸入是什麼?例如,我是否爲John Doe輸入了Doe John或Doe,John?這些將有兩種不同的解決方案。 – Compass 2014-09-22 23:07:57

+1

如果字符串互相碰撞,如果不是不可能分開某人的名字和姓氏,那將是非常困難的。 – 2014-09-22 23:08:38

回答

1

一個簡單的解決方案是分別詢問每個名稱,使用兩次調用Scanner的nextLine()函數。

import java.util.Scanner; 

public class FirstNameLastName { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Please enter the student's last name: "); 
     String lastName = scan.nextLine(); 

     System.out.println("Please enter the student's first name: "); 
     String firstName = scan.nextLine(); 

     System.out.println("Hello, " + firstName + " " + lastName); 
    } 
} 
1

好了,你可以用它返回一個字符串[]的String.split(」「)。 之後,你所要做的就是以相反的順序打印字符串。 PS:這不是關於java的,這是關於編程的。

問候。

1

考慮如下

import java.util.Scanner; 

public class Main { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Please enter the last name of a student: "); 
     String lastName = in.nextLine(); 

     System.out.println("Please enter the first name of a student: "); 
     String firstName = in.nextLine(); 

     System.out.println(firstName + " " + lastName); 
    } 
} 
1

使用name.split(delimiter)創建兩個輸入。這將返回一個String數組,並且每個元素都是由分隔符分隔的String組件的一部分,您必須在使用該方法時將其指定爲參數。例如,從official Java documentation

The string "boo:and:foo", for example, yields the following results with these expressions: 

Regex Result 
: { "boo", "and", "foo" } 
o { "b", "", ":and:f" } 

方法:
Scanner.nextLine()返回一個字符串。因此,這使變量name一個字符串實例。現在您需要找出String支持哪些方法,以便您可以使用.在實例上調用它。這是通過官方Java documentation for String的時間,並找出可以使用的方法。一旦你找到你想要的方法,你可以谷歌爲例:)。

相關問題