문자열을 제목 대소 문자로 변환하는 방법이 있습니까?


99

문자열을 제목 케이스 형식으로 변환하는 데 사용할 수있는 내장 메서드가 있습니까?


3
이 질문을 읽는 모든 사람 : 여기에서 가장 많이 뽑힌 답변 중 많은 부분이 모든 언어에 대해 제대로 작동하지 않는다는 점에 유의하십시오. ICU4J와 같은 올바른 제목 케이싱을 위해서는 i18n 인식 라이브러리가 필요합니다 (Daniel F의 답변 참조).
sffc

답변:


106

Apache Commons StringUtils.capitalize () 또는 Commons Text WordUtils.capitalize ()

예를 들어 : WordUtils.capitalize("i am FINE") = "I Am FINE"로부터 WordUtils의 문서


14
가 제공으로 WordUtils.capitalizeFully () 나를 위해 더 나은했다 : WordUtils.capitalizeFully ( "난 괜찮아요") = "I 암 좋아"
theINtoy

2
약간의 업데이트로 WordUtils는 Commons Text로 이동했으며 Commons Lang 내에서 더 이상 사용되지 않습니다
msrd0

봄도 있습니다StringUtils.capitalise()
OrangeDog

@OrangeDog 의미 capitalize()합니까?
TylerH

@TylerH 예, 자동 수정이 완료되었습니다
OrangeDog

60

Java의 String 클래스에는 capitalize () 또는 titleCase () 메서드가 없습니다. 두 가지 선택이 있습니다.

 StringUtils.capitalize(null)  = null
 StringUtils.capitalize("")    = ""
 StringUtils.capitalize("cat") = "Cat"
 StringUtils.capitalize("cAt") = "CAt"
 StringUtils.capitalize("'cat'") = "'cat'"
  • (또 다른) 정적 도우미 메서드를 toTitleCase ()에 작성하십시오.

샘플 구현

public static String toTitleCase(String input) {
    StringBuilder titleCase = new StringBuilder(input.length());
    boolean nextTitleCase = true;

    for (char c : input.toCharArray()) {
        if (Character.isSpaceChar(c)) {
            nextTitleCase = true;
        } else if (nextTitleCase) {
            c = Character.toTitleCase(c);
            nextTitleCase = false;
        }

        titleCase.append(c);
    }

    return titleCase.toString();
}

테스트 케이스

    System.out.println(toTitleCase("string"));
    System.out.println(toTitleCase("another string"));
    System.out.println(toTitleCase("YET ANOTHER STRING"));

출력 :

끈
또 다른 문자열
아직 다른 문자열

1
이것은 멋진 작은 루틴이지만 문자열이 이름을 나타낼 수있는보다 일반적인 경우에는 실패합니다. 이 경우 아포스트로피와 하이픈 뒤에 대문자를 사용해야합니다. 예 : O'Connor와 J. Wilkes-Booth. 물론 다른 언어에는 추가 제목 케이스 규칙이있을 수 있습니다.
scottb

... 그것을 포함한다면, 현재 단어가 이름인지 알아 내기 위해 전체 사전 조회가 필요하지 않을까요? 한 가지 방법에 대해 조금 많이 보입니다.
MMJZ

이 코드는 Maria del Carmen, Maria da Silva, Maria della Salute 등과 같이 일부 이름에 de, del, della, dei, da와 같은 전치사가있을 수 있으므로 거의 문제가 없습니다. coderanch.com/t/35096/Programming/…
주니어 Mayhé

이것은 아포스트로피로 분리되지 않습니까? 예를 들어 O'Brian은 어떻습니까?
sproketboy 2011 년

1
참고 : 내부적으로 사용되는 크기 조정을 피하기 위해 사용 char[]하는 StringBuilder것이 좋습니다new StringBuilder(input.length())
Lino

38

솔루션에 대한 의견을 제출할 수 있다면 ...

다음 방법은 dfa가 게시 한 방법을 기반으로합니다. 다음과 같은 주요 변경 사항을 적용합니다 (당시 필요한 솔루션에 적합). 문자가 강제 변환되는 "실행 가능한 구분 기호"가 바로 앞에 나오지 않는 한 입력 문자열의 모든 문자를 소문자로 강제 변환합니다. 대문자.

내 루틴의 주요 한계는 "제목 대소 문자"가 모든 로케일에 대해 균일하게 정의되고 내가 사용한 것과 동일한 대소 문자 규칙에 의해 표현된다는 가정을 만드는 것이므로 그 점에서 dfa의 코드보다 유용하지 않습니다.

public static String toDisplayCase(String s) {

    final String ACTIONABLE_DELIMITERS = " '-/"; // these cause the character following
                                                 // to be capitalized
    
    StringBuilder sb = new StringBuilder();
    boolean capNext = true;

    for (char c : s.toCharArray()) {
        c = (capNext)
                ? Character.toUpperCase(c)
                : Character.toLowerCase(c);
        sb.append(c);
        capNext = (ACTIONABLE_DELIMITERS.indexOf((int) c) >= 0); // explicit cast not needed
    }
    return sb.toString();
}

테스트 값

문자열

maRTin o'maLLEY

존 윌크스 부스

아직 다른 문자열

출력

문자열

마틴 오말리

존 윌크스 부스

또 다른 문자열


대문자가 LJ이지만 제목이 Lj 인 lj와 같은 합자에는 작동하지 않습니다. Character.toTitleCase대신 사용하십시오 .
mihi

@mihi : 또한 다른 특수 규칙과 함께 작동하지 않습니다. McNamara 또는 MacDonald와 같은 성.
scottb 2014

그러나 이러한 경우는 본질적으로 고칠 수 없습니다. 올바른 대소 문자 변환 기능 (유니 코드 규칙에 따라 대문자가 아닌 단어를 대문자로 표시하는 데 사용되어야 함)을 사용할 수 있습니다 (쉽습니다).
mihi

이것은 또한 "그녀의 것"이 "그녀의 것"이되는 원인이되지 않을까요?
allicarn 2014-06-27

사실입니다. 이것은 이름 필드에서 잘 작동하지만 지적했듯이 일반적인 산문에서는 아닙니다. 모든 이름, 특히 Vulcans (T'pau 대신 T'Pau)에서 잘 작동하지 않습니다.
scottb 2014 년

21

Apache Commons에서 WordUtils.capitalizeFully () 를 사용하십시오 .

WordUtils.capitalizeFully(null)        = null
WordUtils.capitalizeFully("")          = ""
WordUtils.capitalizeFully("i am FINE") = "I Am Fine"

1
좋은 해결책! 감사! 그러나 이것은 "This is a Title"이라는 제목에서 "a"를 대문자로 사용하므로 항상 100 % 작동하지 않습니다. english.stackexchange.com/questions/14/… 참조 . 이것을 다루는 도서관을 아십니까?
Eirik W

10

다음과 같이 아파치 공용 언어를 사용할 수 있습니다.

WordUtils.capitalizeFully("this is a text to be capitalize")

여기에서 자바 문서를 찾을 수 있습니다. WordUtils.capitalizeFully 자바 문서

세계 사이의 공백을 제거하려면 다음을 사용할 수 있습니다.

StringUtils.remove(WordUtils.capitalizeFully("this is a text to be capitalize")," ")

String StringUtils.remove java doc에 대한 Java 문서를 찾을 수 있습니다.

이 도움이되기를 바랍니다.



3

다음은 문자 / 숫자가 아닌 문자를 처리하는 @dfa 및 @scottb의 답변을 기반으로 한 또 다른 테이크입니다.

public final class TitleCase {

    public static String toTitleCase(String input) {

        StringBuilder titleCase = new StringBuilder(input.length());
        boolean nextTitleCase = true;

        for (char c : input.toLowerCase().toCharArray()) {
            if (!Character.isLetterOrDigit(c)) {
                nextTitleCase = true;
            } else if (nextTitleCase) {
                c = Character.toTitleCase(c);
                nextTitleCase = false;
            }
            titleCase.append(c);
        }

        return titleCase.toString();
    }

}

주어진 입력 :

메리 엔 오코 네즈-수슬 리크

출력은

메리 엔 오코 네즈-수슬 리크


2

이것은 snake_case를 lowerCamelCase로 변환하기 위해 작성한 것이지만 요구 사항에 따라 쉽게 조정할 수 있습니다.

private String convertToLowerCamel(String startingText)
{
    String[] parts = startingText.split("_");
    return parts[0].toLowerCase() + Arrays.stream(parts)
                    .skip(1)
                    .map(part -> part.substring(0, 1).toUpperCase() + part.substring(1).toLowerCase())
                    .collect(Collectors.joining());
}

귀하의 대답은 매력처럼 작동하지만 솔루션이 단일 단어 시퀀스를 처리하지 않는 것 같습니다. 아마도 if 조건으로 충분할 것입니다.
yashgarg1232

1

나는 이것이 오래된 것임을 알고 있지만 간단한 대답을 제공하지 않습니다. 코딩 에이 방법이 필요했기 때문에 여기에 추가하고 사용하기 쉽습니다.

public static String toTitleCase(String input) {
    input = input.toLowerCase();
    char c =  input.charAt(0);
    String s = new String("" + c);
    String f = s.toUpperCase();
    return f + input.substring(1);
}

1

나는이 문제가 있었고 그것을 검색 한 다음 일부 자바 키워드를 사용하여 내 자신의 방법을 만들었습니다. 문자열 변수를 매개 변수로 전달하고 적절한 제목의 문자열로 출력을 가져옵니다.

public class Main
{
  public static void main (String[]args)
  {
    String st = "pARVeEN sISHOsIYA";
    String mainn = getTitleCase (st);
      System.out.println (mainn);
  }


  public static String getTitleCase(String input)
  {
    StringBuilder titleCase = new StringBuilder (input.length());
    boolean hadSpace = false;
    for (char c:input.toCharArray ()){
        if(Character.isSpaceChar(c)){
            hadSpace = true;
            titleCase.append (c);
            continue;
        }
        if(hadSpace){
            hadSpace = false;
            c = Character.toUpperCase(c);
            titleCase.append (c);
        }else{
            c = Character.toLowerCase(c);
            titleCase.append (c);
        }
    }
    String temp=titleCase.toString ();
    StringBuilder titleCase1 = new StringBuilder (temp.length ());
    int num=1;
    for (char c:temp.toCharArray ())
        {   if(num==1)
            c = Character.toUpperCase(c);
            titleCase1.append (c);
            num=0;
        }
        return titleCase1.toString ();
    }
}

여기에서 나는 적절한 트림 문자열을 얻고 있었기 때문에 어디서나 트림 방법을 사용하지 않았습니다.
Parveen Sishodiya

0

당신은 아주 잘 사용할 수 있습니다

org.apache.commons.lang.WordUtils

또는

CaseFormat

Google의 API에서.


1
방법과 예제를 추가하면 유용 할 것입니다.
jechaviz 18:57에

CaseFormat에는 일반적으로 프로그램 식별자 (UpperCamel, 낮은 하이픈, UPPER_UNDERSCORE 등)에서 사용되는 형식 만 있으며 ASCII 텍스트 만 지원합니다. 타이틀 케이스로 변환 할 때는 잘 작동하지 않습니다.
M. Justin

0

나는 최근 에이 문제도 만났고 불행히도 Mc와 Mac으로 시작하는 이름이 많이 발생했습니다.이 접두사를 처리하기 위해 변경 한 scottb의 코드 버전을 사용하여 누군가가 사용하고 싶어하는 경우 여기에 있습니다.

이것이 놓치는 경우가 여전히 있지만 최악의 경우 대문자로 표시해야 할 때 문자가 소문자로 표시된다는 것입니다.

/**
 * Get a nicely formatted representation of the name. 
 * Don't send this the whole name at once, instead send it the components.<br>
 * For example: andrew macnamara would be returned as:<br>
 * Andrew Macnamara if processed as a single string<br>
 * Andrew MacNamara if processed as 2 strings.
 * @param name
 * @return correctly formatted name
 */
public static String getNameTitleCase (String name) {
    final String ACTIONABLE_DELIMITERS = " '-/";
    StringBuilder sb = new StringBuilder();
    if (name !=null && !name.isEmpty()){                
        boolean capitaliseNext = true;
        for (char c : name.toCharArray()) {
            c = (capitaliseNext)?Character.toUpperCase(c):Character.toLowerCase(c);
            sb.append(c);
            capitaliseNext = (ACTIONABLE_DELIMITERS.indexOf((int) c) >= 0);
        }                       
        name = sb.toString();    
        if (name.startsWith("Mc") && name.length() > 2 ) {
            char c = name.charAt(2);
            if (ACTIONABLE_DELIMITERS.indexOf((int) c) < 0) {
                sb = new StringBuilder();
                sb.append (name.substring(0,2));
                sb.append (name.substring(2,3).toUpperCase());
                sb.append (name.substring(3));
                name=sb.toString();
            }               
        } else if (name.startsWith("Mac") && name.length() > 3) {
            char c = name.charAt(3);
            if (ACTIONABLE_DELIMITERS.indexOf((int) c) < 0) {
                sb = new StringBuilder();
                sb.append (name.substring(0,3));
                sb.append (name.substring(3,4).toUpperCase());
                sb.append (name.substring(4));
                name=sb.toString();
            }
        }
    }
    return name;    
}

0

적절한 제목 케이스로 전환 :

String s= "ThiS iS SomE Text";
String[] arr = s.split(" ");
s = "";
for (String s1 : arr) {
    s += WordUtils.capitalize(s1.toLowerCase()) + " ";
}
s = s.substring(0, s.length() - 1);

결과 : "이것은 텍스트입니다"


0

Spring의 사용 StringUtils:

org.springframework.util.StringUtils.capitalize(someText);

어쨌든 이미 Spring을 사용하고 있다면 다른 프레임 워크를 가져 오는 것을 피할 수 있습니다.


0

이 메소드를 사용하여 문자열을 제목 케이스로 변환하십시오.

static String toTitleCase(String word) {
    return Stream.of(word.split(" "))
            .map(w -> w.toUpperCase().charAt(0)+ w.toLowerCase().substring(1))
            .reduce((s, s2) -> s + " " + s2).orElse("");
}

0

이 변환기는 낙타 케이스, 공백, 숫자 및 기타 문자를 포함하는 모든 문자열을 정리 된 제목 케이스로 변환합니다.

/**
 * Convert a string to title case in java (with tests).
 *
 * @author Sudipto Chandra
 */
public abstract class TitleCase {

    /**
     * Returns the character type. <br>
     * <br>
     * Digit = 2 <br>
     * Lower case alphabet = 0 <br>
     * Uppercase case alphabet = 1 <br>
     * All else = -1.
     *
     * @param ch
     * @return
     */
    private static int getCharType(char ch) {
        if (Character.isLowerCase(ch)) {
            return 0;
        } else if (Character.isUpperCase(ch)) {
            return 1;
        } else if (Character.isDigit(ch)) {
            return 2;
        }
        return -1;
    }

    /**
     * Converts any given string in camel or snake case to title case.
     * <br>
     * It uses the method getCharType and ignore any character that falls in
     * negative character type category. It separates two alphabets of not-equal
     * cases with a space. It accepts numbers and append it to the currently
     * running group, and puts a space at the end.
     * <br>
     * If the result is empty after the operations, original string is returned.
     *
     * @param text the text to be converted.
     * @return a title cased string
     */
    public static String titleCase(String text) {
        if (text == null || text.length() == 0) {
            return text;
        }

        char[] str = text.toCharArray();
        StringBuilder sb = new StringBuilder();

        boolean capRepeated = false;
        for (int i = 0, prev = -1, next; i < str.length; ++i, prev = next) {
            next = getCharType(str[i]);
            // trace consecutive capital cases
            if (prev == 1 && next == 1) {
                capRepeated = true;
            } else if (next != 0) {
                capRepeated = false;
            }
            // next is ignorable
            if (next == -1) {
                // System.out.printf("case 0, %d %d %s\n", prev, next, sb.toString());
                continue; // does not append anything
            }
            // prev and next are of same type
            if (prev == next) {
                sb.append(str[i]);
                // System.out.printf("case 1, %d %d %s\n", prev, next, sb.toString());
                continue;
            }
            // next is not an alphabet
            if (next == 2) {
                sb.append(str[i]);
                // System.out.printf("case 2, %d %d %s\n", prev, next, sb.toString());
                continue;
            }
            // next is an alphabet, prev was not +
            // next is uppercase and prev was lowercase
            if (prev == -1 || prev == 2 || prev == 0) {
                if (sb.length() != 0) {
                    sb.append(' ');
                }
                sb.append(Character.toUpperCase(str[i]));
                // System.out.printf("case 3, %d %d %s\n", prev, next, sb.toString());
                continue;
            }
            // next is lowercase and prev was uppercase
            if (prev == 1) {
                if (capRepeated) {
                    sb.insert(sb.length() - 1, ' ');
                    capRepeated = false;
                }
                sb.append(str[i]);
                // System.out.printf("case 4, %d %d %s\n", prev, next, sb.toString());
            }
        }
        String output = sb.toString().trim();
        output = (output.length() == 0) ? text : output;
        //return output;

        // Capitalize all words (Optional)
        String[] result = output.split(" ");
        for (int i = 0; i < result.length; ++i) {
            result[i] = result[i].charAt(0) + result[i].substring(1).toLowerCase();
        }
        output = String.join(" ", result);
        return output;
    }

    /**
     * Test method for the titleCase() function.
     */
    public static void testTitleCase() {
        System.out.println("--------------- Title Case Tests --------------------");
        String[][] samples = {
            {null, null},
            {"", ""},
            {"a", "A"},
            {"aa", "Aa"},
            {"aaa", "Aaa"},
            {"aC", "A C"},
            {"AC", "Ac"},
            {"aCa", "A Ca"},
            {"ACa", "A Ca"},
            {"aCamel", "A Camel"},
            {"anCamel", "An Camel"},
            {"CamelCase", "Camel Case"},
            {"camelCase", "Camel Case"},
            {"snake_case", "Snake Case"},
            {"toCamelCaseString", "To Camel Case String"},
            {"toCAMELCase", "To Camel Case"},
            {"_under_the_scoreCamelWith_", "Under The Score Camel With"},
            {"ABDTest", "Abd Test"},
            {"title123Case", "Title123 Case"},
            {"expect11", "Expect11"},
            {"all0verMe3", "All0 Ver Me3"},
            {"___", "___"},
            {"__a__", "A"},
            {"_A_b_c____aa", "A B C Aa"},
            {"_get$It132done", "Get It132 Done"},
            {"_122_", "122"},
            {"_no112", "No112"},
            {"Case-13title", "Case13 Title"},
            {"-no-allow-", "No Allow"},
            {"_paren-_-allow--not!", "Paren Allow Not"},
            {"Other.Allow.--False?", "Other Allow False"},
            {"$39$ldl%LK3$lk_389$klnsl-32489  3 42034 ", "39 Ldl Lk3 Lk389 Klnsl32489342034"},
            {"tHis will BE MY EXAMple", "T His Will Be My Exa Mple"},
            {"stripEvery.damn-paren- -_now", "Strip Every Damn Paren Now"},
            {"getMe", "Get Me"},
            {"whatSthePoint", "What Sthe Point"},
            {"n0pe_aLoud", "N0 Pe A Loud"},
            {"canHave SpacesThere", "Can Have Spaces There"},
            {"  why_underScore exists  ", "Why Under Score Exists"},
            {"small-to-be-seen", "Small To Be Seen"},
            {"toCAMELCase", "To Camel Case"},
            {"_under_the_scoreCamelWith_", "Under The Score Camel With"},
            {"last one onTheList", "Last One On The List"}
        };
        int pass = 0;
        for (String[] inp : samples) {
            String out = titleCase(inp[0]);
            //String out = WordUtils.capitalizeFully(inp[0]);
            System.out.printf("TEST '%s'\nWANTS '%s'\nFOUND '%s'\n", inp[0], inp[1], out);
            boolean passed = (out == null ? inp[1] == null : out.equals(inp[1]));
            pass += passed ? 1 : 0;
            System.out.println(passed ? "-- PASS --" : "!! FAIL !!");
            System.out.println();
        }
        System.out.printf("\n%d Passed, %d Failed.\n", pass, samples.length - pass);
    }

    public static void main(String[] args) {
        // run tests
        testTitleCase();
    }
}

다음은 몇 가지 입력입니다.

aCamel
TitleCase
snake_case
fromCamelCASEString
ABCTest
expect11
_paren-_-allow--not!
  why_underScore   exists  
last one onTheList 

그리고 내 출력 :

A Camel
Title Case
Snake Case
From Camel Case String
Abc Test
Expect11
Paren Allow Not
Why Under Score Exists
Last One On The List

0

"꿈의 직업에 착수하는 방법", "앵무새를 죽이는 방법"등의 실제 제목 케이스에는 답이없는 것 같아서 나만의 방법을 만들었습니다. 영어 텍스트에 가장 적합합니다.

private final static Set<Character> TITLE_CASE_DELIMITERS = new HashSet<>();

  static {
    TITLE_CASE_DELIMITERS.add(' ');
    TITLE_CASE_DELIMITERS.add('.');
    TITLE_CASE_DELIMITERS.add(',');
    TITLE_CASE_DELIMITERS.add(';');
    TITLE_CASE_DELIMITERS.add('/');
    TITLE_CASE_DELIMITERS.add('-');
    TITLE_CASE_DELIMITERS.add('(');
    TITLE_CASE_DELIMITERS.add(')');
  }

  private final static Set<String> TITLE_SMALLCASED_WORDS = new HashSet<>();

  static {
    TITLE_SMALLCASED_WORDS.add("a");
    TITLE_SMALLCASED_WORDS.add("an");
    TITLE_SMALLCASED_WORDS.add("the");
    TITLE_SMALLCASED_WORDS.add("for");
    TITLE_SMALLCASED_WORDS.add("in");
    TITLE_SMALLCASED_WORDS.add("on");
    TITLE_SMALLCASED_WORDS.add("of");
    TITLE_SMALLCASED_WORDS.add("and");
    TITLE_SMALLCASED_WORDS.add("but");
    TITLE_SMALLCASED_WORDS.add("or");
    TITLE_SMALLCASED_WORDS.add("nor");
    TITLE_SMALLCASED_WORDS.add("to");
  }

  public static String toCapitalizedWord(String oneWord) {
    if (oneWord.length() < 1) {
      return oneWord.toUpperCase();
    }
    return "" + Character.toTitleCase(oneWord.charAt(0)) + oneWord.substring(1).toLowerCase();
  }

  public static String toTitledWord(String oneWord) {
    if (TITLE_SMALLCASED_WORDS.contains(oneWord.toLowerCase())) {
      return oneWord.toLowerCase();
    }
    return toCapitalizedWord(oneWord);
  }

  public static String toTitleCase(String str) {
    StringBuilder result = new StringBuilder();
    StringBuilder oneWord = new StringBuilder();

    char previousDelimiter = 'x';
    /* on start, always move to upper case */
    for (char c : str.toCharArray()) {
      if (TITLE_CASE_DELIMITERS.contains(c)) {
        if (previousDelimiter == '-' || previousDelimiter == 'x') {
          result.append(toCapitalizedWord(oneWord.toString()));
        } else {
          result.append(toTitledWord(oneWord.toString()));
        }
        oneWord.setLength(0);
        result.append(c);
        previousDelimiter = c;
      } else {
        oneWord.append(c);
      }
    }
    if (previousDelimiter == '-' || previousDelimiter == 'x') {
      result.append(toCapitalizedWord(oneWord.toString()));
    } else {
      result.append(toTitledWord(oneWord.toString()));
    }
    return result.toString();
  }

  public static void main(String[] args) {
    System.out.println(toTitleCase("one year in paris"));
    System.out.println(toTitleCase("How to Land Your Dream Job"));
  }

0

이것은 가장 간단한 해결책입니다

    static void title(String a,String b){
    String ra = Character.toString(Character.toUpperCase(a.charAt(0)));
    String rb = Character.toString(Character.toUpperCase(b.charAt(0)));
    for(int i=1;i<a.length();i++){
        ra+=a.charAt(i);
    }
    for(int i=1;i<b.length();i++){
        rb+=b.charAt(i);
    }
    System.out.println(ra+" "+rb);

-1

이것은 작동합니다.

String str="i like pancakes";
String arr[]=str.split(" ");
String strNew="";
for(String str1:arr)
{
    Character oldchar=str1.charAt(0);
    Character newchar=Character.toUpperCase(str1.charAt(0));
    strNew=strNew+str1.replace(oldchar,newchar)+" ";    
}
System.out.println(strNew);

1
OP가 내장 기능을 요청했기 때문에 이것은 유효한 대답이 아닙니다 . 이것 뒤에 숨겨진 복잡성을 다루는 주석, 즉 i18n도 참조하십시오.
Marcus

-2

문자열을 제목 케이스로 변환하는 가장 간단한 방법은 googles 패키지 org.apache.commons.lang.WordUtils를 사용하는 것입니다.

System.out.println(WordUtils.capitalizeFully("tHis will BE MY EXAMple"));

결과가

이것이 나의 모범이 될 것이다

왜 "capitalizeFully"라는 이름이 붙여 졌는지 모르겠습니다. 실제로 함수가 전체 자본 결과를 수행하지 않지만 어쨌든 그것이 우리가 필요로하는 도구입니다.


1
capitalizeFully제목에서 소문자 여야하는 단어를 포함하여 모든 단어를 대문자로 표시하기 때문에 이름이 지정 됩니다. grammar.about.com/od/tz/g/Title-Case.htm
aij

2
Apache Commons는 Google의 소유가 아닙니다. Apache Software Foundation에서 관리합니다. commons.apache.org
ATutorMe

-3

초보자라서 미안해 코딩 습관이 엉망이야!

public class TitleCase {

    String title(String sent)
    {   
        sent =sent.trim();
        sent = sent.toLowerCase();
        String[] str1=new String[sent.length()];
        for(int k=0;k<=str1.length-1;k++){
            str1[k]=sent.charAt(k)+"";
    }

        for(int i=0;i<=sent.length()-1;i++){
            if(i==0){
                String s= sent.charAt(i)+"";
                str1[i]=s.toUpperCase();
                }
            if(str1[i].equals(" ")){
                String s= sent.charAt(i+1)+"";
                str1[i+1]=s.toUpperCase();
                }

            System.out.print(str1[i]);
            }

        return "";
        }

    public static void main(String[] args) {
        TitleCase a = new TitleCase();
        System.out.println(a.title("   enter your Statement!"));
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.