2013-06-13 10 views
9

Voglio convertire qualsiasi stringa in caso Camel modificato o Title case utilizzando alcune librerie predefinite che scrivere le mie proprie funzioni.Convertire una stringa in caso di cammello modificato in Java o Title Case come altrimenti viene chiamato

Per esempio "HI tHiS is SomE Statement"-"Hi This Is Some Statement"

Regex o qualunque libreria standard mi aiuterà.

Ho trovato alcune funzioni di libreria in eclissi come STRING.toCamelCase(); esiste qualcosa del genere?

+2

Forse intendi [title case] (http://en.wikipedia.org/wiki/Sentence_case#Title_case)? "[Camel case] (http://en.wikipedia.org/wiki/CamelCase)" di solito si riferisce a cose come "HiThisIsSomeStatement" (nessun delimitatore tra le parole). –

+0

Mi spiace di non sapere caso titolo. Grazie Ted Hopp. Voglio Titolo Caso – takrishna

risposta

11

ho usato il seguente per risolvere questo problema.

import org.apache.commons.lang.StringUtils; 
StringUtils.capitalize(MyString); 

Grazie a Ted Hopp per ragione sottolineando che la questione avrebbe dovuto essere maiuscole anziché modificato CASE cammello.

Camel Case è di solito senza spazi tra le parole.

15

Si può facilmente scrivere il metodo per farlo:

public static String toCamelCase(final String init) { 
    if (init==null) 
     return null; 

    final StringBuilder ret = new StringBuilder(init.length()); 

    for (final String word : init.split(" ")) { 
     if (!word.isEmpty()) { 
      ret.append(word.substring(0, 1).toUpperCase()); 
      ret.append(word.substring(1).toLowerCase()); 
     } 
     if (!(ret.length()==init.length())) 
      ret.append(" "); 
    } 

    return ret.toString(); 
} 
+2

Invece di 'word.substring (0, 1) .toUpperCase()' potresti fare 'Character.toUpperCase (word.charAt (0))' – fge

1

Refer:

static String toCamelCase(String s){ 
      String[] parts = s.split(" "); 
      String camelCaseString = ""; 
      for (String part : parts){ 
       if(part!=null && part.trim().length()>0) 
       camelCaseString = camelCaseString + toProperCase(part); 
       else 
        camelCaseString=camelCaseString+part+" "; 
      } 
      return camelCaseString; 
     } 

     static String toProperCase(String s) { 
      String temp=s.trim(); 
      String spaces=""; 
      if(temp.length()!=s.length()) 
      { 
      int startCharIndex=s.charAt(temp.indexOf(0)); 
      spaces=s.substring(0,startCharIndex); 
      } 
      temp=temp.substring(0, 1).toUpperCase() + 
      spaces+temp.substring(1).toLowerCase()+" "; 
      return temp; 

     } 
    public static void main(String[] args) { 
    String string="HI tHiS is SomE Statement"; 
    System.out.println(toCamelCase(string)); 
    } 
+0

Questo codice lancia un 'StringIndexOutOfBoundsException' se ci sono due consecutive spazi bianchi in 'String' (o se' String' è vuoto). Getta un 'NullPointerException' se il' String' è nullo. –

+0

@FlorentBayle oh vediamo la risposta aggiornata !! – NFE

Problemi correlati