2010-03-02 2 views
1

Как получить метод доступа, чтобы вернуть первую букву имени в верхнем регистре, а остальные в нижнем регистре, независимо от того, что было введено?вопрос с возвратом метода доступа

public class Name 
{ 
    private String first; 
    private String last; 

    /** 
    * Constructor for objects of class Name 
    */ 
    public Name(String firstName, String lastName) 
    { 
     first = firstName; 
     last = lastName; 
    } 

    /** 
    * @returns firstName 
    */ 
    public String getFirstname() 
    { 
     return first;  
    } 

    /** 
    * @returns lastName 
    */ 
    public String getLastname() 
    { 
     return last; 
    } 

    /** 
    * @returns Fullname 
    */ 
    public String getFullname() 
    { 
     return first + last; 
    } 

    /** 
    * @para new firstname 
    */ 
    public void setFirstname(String firstName) 
    { 
     first = firstName; 
    } 
} 
+9

Не надо! У некоторых людей есть более чем одна заглавная буква в их именах. –

+1

И я согласен с Карлом. На вашем входе вы должны использовать его, но вы не должны его менять. –

ответ

0

Это единственный способ, которым я могу думать делать это:

last.substring(0,1).toUpperCase() + last.substring(1).toLowercase() 
+2

Он не работает на пустой строке. –

+1

И на суррогатные пары. (Это относится к людям с необычными именами.) –

+1

Также не выполняется «null» (который не проверяется в конструкции). –

0

Использование StringUtils.capitalize из Commons Lang.

Всегда используйте библиотеку, если она доступна, они, вероятно, прошли через все угловые шкафы, которые вы только выяснили после решения проблемы после ошибки.

+1

Но это не гарантирует, что остальная часть имени имеет нижний регистр; он просто капитализирует первый и оставляет остальных так, как они есть. ОП сказал: «а остальные в нижнем регистре, независимо от того, что было введено» – charlie

1
public static String capitalizeFirst(String s) { 
    return Character.toUpperCase(s.charAt(0)) + s.substring(1).toLowerCase(); 
} 

public String getFirstname() { 
    return capitalizeFirst(first); 
} 

Как следует из названия, capitalizeFirst заглавных первого символ непустой строки, и преобразует остальную часть строки в нижнем регистре.

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