2016-09-07 23 views
-3

hibernate中是否有一种将字符串中每个单词的第一个字母转换为大写的方法。在休眠中是否有一个字符串的首字母大写的方法

EX: 名字中间名姓氏

TO: 名字中间名姓

如果没有,请告诉如何在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 "; 

谢谢。

+1

要么太宽泛,要么不清楚。至少没有用。你真的问我们,如何做一些[字符串操作](http://docs.oracle.com/javase/8/docs/api/java/lang/String.html)? – Seelenvirtuose

+0

HQL中是否有与SQL的INITCAP()类似的方法? – karthi

+0

可能重复的[如何在字符串中使用java大写第一个字母的单词](http://stackoverflow.com/questions/5725892/how-to-capitalize-the-first-letter-of-word-in -a-string-using-java) –

回答

1

我写这解决了使用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()); 
    } 
+0

它工作完美,谢谢。 – karthi

0

可用的方法,如果你不想公用事业您的问题java程序,你可以卷起自己

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; 
    } 
0

尝试的方法与此: String maString =“firstname”; maString = maString.substring(0,1).toUpperCase()+ maString.substring(1).toLowerCase();

+0

不是一个有效的解决方案,他希望所有的单词都能像这样处理。 – Damiano

相关问题