2014-10-06 300 views
-1

我想要姓氏打印與第一個字母只有大寫,但我得到的所有姓氏大寫。我希望用戶輸入他們的名字像喬丹託雷斯和回饋託雷斯,J.大寫首字母的姓

import java.util.*; // for Scanner 

public class ProcessName { public static void main(String[] args) { String name; 
    Scanner console = new Scanner(System.in); 
    System.out.print("Type your name: "); //send to user 

    name = console.nextLine(); 
    String[] nameArray = name.split(" ");//split string into array 

    String firstName = name.valueOf(name.charAt(0)).toUpperCase(); //get first letter 
    String lastName = name.substring(name.indexOf(" ") + 1).toUpperCase(); 

    String myName = lastName + ", " + firstName;//give last and first name 

     System.out.println("Your name is: " + myName + "."); 

我的輸出TORRES,J.

+0

那麼,有什麼問題呢?如果你不希望它是'TORRES',而是'Torres',那麼只需要將'.toUpperCase()'應用到第一個字母,你就可以將它應用到整個子字符串中。 – 2014-10-06 02:07:25

+0

我只想把姓氏的第一個字母大寫,而不是全部。 – Jordan 2014-10-06 02:09:37

+0

沒問題,那麼如果他們只把torres沒有資本t呢?那麼它只是託雷斯。我怎麼能這樣做,所以第一個字母總是大寫的姓氏? – Jordan 2014-10-06 02:14:19

回答

2
// Get the last name as entered by the user 
String lastName = name.substring(name.indexOf(" ") + 1); 

// Upcase the first character, then append the remaining characters 
lastName = Character.toUpperCase(lastName.charAt(0)) + lastName.substring(1); 
+0

好吧,我的男人,非常感謝。那是我需要的。我現在知道了。 – Jordan 2014-10-06 02:26:42