在hibernate中是否有一个方法来大写字符串的第一个字母

时间:2016-09-07 11:13:57

标签: java hibernate hql

hibernate中是否有一个方法可以将字符串中每个单词的第一个字母转换为大写。

EX: firstname middlename lastname

名字中间名姓氏

如果没有,请告诉我如何在java中执行此操作,我不想使用任何库。

解决方案:

使用以下hql查询解决了这个问题。

String hql = "select concat(concat(upper(substring(personFirstName,1,1)), "
               + " lower(substring(personFirstName,2))), ' ', "
               + " concat(upper(substring(personMiddelName,1,1)), "
               + " lower(substring(personMiddelName,2))), ' ', "
               + " concat(upper(substring(personLastName,1,1)), "
               + " lower(substring(personLastName,2)))) "
               + " from PersonModel ";

感谢。

3 个答案:

答案 0 :(得分:1)

我编写了java程序,它使用String类

中提供的方法解决了您的问题
public static void main(String[] args) {
        String test = "firstname middlename lastname";
        String array [] = test.split(" ");
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i<array.length; i ++) {
            builder.append(array[i].toUpperCase().charAt(0) + array[i].substring(1, array[i].length()));
            builder.append(" ");
        }
        System.out.println(builder.toString());
    }

答案 1 :(得分:0)

如果您不想使用实用程序,可以使用自己的方法

private String capitalizeName(String firstName , String lastName , String middleName){
        StringBuffer fullName = new StringBuffer();
        fullName.append(firstName);
        fullName.append(' ');
        fullName.append(middleName);
        fullName.append(' ');
        fullName.append(lastName);


        String[] tokens = fullName.toString().split("\\s");
        String nameWithCaps = "";

        for(int i = 0; i < tokens.length; i++){
            char capLetter = Character.toUpperCase(tokens[i].charAt(0));
            nameWithCaps +=  " " + capLetter + tokens[i].substring(1);
        }
        nameWithCaps = nameWithCaps.trim();
        return nameWithCaps;
    }

答案 2 :(得分:0)

试试这个: String maString =&#34; firstname&#34; ; maString = maString.substring(0,1).toUpperCase()+ maString.substring(1).toLowerCase();