2014-10-06 3 views
-1

Я хочу, чтобы фамилия была напечатана с там, где первая буква была заглавной, но я получил всю фамилию, заглавную. Я хочу, чтобы пользователю ввести свое имя, как Jordan Торрес и вернуть Торрес, 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()' к первой букве, вы применяете его ко всей подстроке. –

+0

Я хочу, чтобы первая буква фамилии была заглавной, а не все. – Jordan

+0

все в порядке, тогда что, если они просто ставят торр без капитала? то его справедливые торры. как я могу это сделать, чтобы первая буква всегда заглавная буквами для фамилии? – Jordan

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^