2013-06-13 14 views
9

Tôi muốn chuyển đổi bất kỳ chuỗi nào thành trường hợp Camel hoặc trường hợp Tiêu đề bằng cách sử dụng một số thư viện được xác định trước hơn là viết các hàm của riêng tôi.Chuyển đổi một chuỗi thành trường hợp Camel trong Java hoặc Title Case như được gọi là

Ví dụ "HI tHiS is SomE Statement"-"Hi This Is Some Statement"

Regex hoặc bất kỳ thư viện chuẩn sẽ giúp tôi.

Tôi đã tìm thấy một số chức năng thư viện nhất định trong nhật thực như STRING.toCamelCase(); có bất kỳ điều gì như vậy không?

+2

Có thể bạn muốn nói [trường hợp tiêu đề] (http://en.wikipedia.org/wiki/Sentence_case#Title_case)? "[Camel case] (http://en.wikipedia.org/wiki/CamelCase)" thường đề cập đến những thứ như "HiThisIsSomeStatement" (không có dấu phân tách giữa các từ). –

+0

Xin lỗi tôi không biết về trường hợp tiêu đề. Cảm ơn Ted Hopp. Tôi muốn Title Case – takrishna

Trả lời

11

tôi đã sử dụng dưới đây để giải quyết vấn đề này.

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

Nhờ Ted Hopp cho đúng chỉ ra rằng vấn đề cần phải có được TITLE TRƯỜNG HỢP thay vì sửa đổi CAMEL CASE.

Trường hợp Camel thường không có dấu cách giữa các từ.

15

Bạn có thể dễ dàng viết phương pháp để làm điều đó:

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

Thay vì 'word.substring (0, 1) .toUpperCase()' bạn có thể làm '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

Mã này ném một 'StringIndexOutOfBoundsException' nếu có hai liên tiếp khoảng trắng trong 'Chuỗi' (hoặc nếu' Chuỗi' trống). Nó ném một 'NullPointerException' nếu' String' là null. –

+0

@FlorentBayle oh hãy xem câu trả lời cập nhật !! – NFE

Các vấn đề liên quan