Existe-t-il une méthode de conversion de chaîne en cas de titre?


99

Existe-t-il des méthodes intégrées disponibles pour convertir une chaîne au format Title Case?


3
Tous ceux qui lisent cette question: sachez que la plupart des réponses les plus votées ici NE FONCTIONNENT PAS CORRECTEMENT pour toutes les langues. Vous avez besoin d'une bibliothèque compatible i18n pour un titrage correct, comme ICU4J (voir la réponse de Daniel F).
sffc

Réponses:


106

Apache Commons StringUtils.capitalize () ou texte commun WordUtils.capitalize ()

par exemple: à WordUtils.capitalize("i am FINE") = "I Am FINE"partir de la documentation WordUtils


14
WordUtils.capitalizeFully () était meilleur pour moi car il donne: WordUtils.capitalizeFully ("je suis FINE") = "Je vais bien"
theINtoy

2
Juste une petite mise à jour, WordUtils est passé à Commons Text et est obsolète dans Commons Lang
msrd0

Le printemps a aussiStringUtils.capitalise()
OrangeDog

@OrangeDog voulez-vous dire capitalize()?
TylerH


60

Il n'y a pas de méthodes capitalize () ou titleCase () dans la classe String de Java. Vous avez deux choix:

 StringUtils.capitalize(null)  = null
 StringUtils.capitalize("")    = ""
 StringUtils.capitalize("cat") = "Cat"
 StringUtils.capitalize("cAt") = "CAt"
 StringUtils.capitalize("'cat'") = "'cat'"
  • écrire (encore une autre) méthode d'assistance statique toTitleCase ()

Exemple d'implémentation

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();
}

Cas de test

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

les sorties:

Chaîne
Une autre chaîne
ENCORE UNE AUTRE CHAÎNE

1
C'est une jolie petite routine, mais elle échoue dans le cas plus général dans lequel les chaînes peuvent représenter des noms. Dans ce cas, la mise en majuscule devrait également avoir lieu après les apostrophes et les tirets. Par exemple. O'Connor et J. Wilkes-Booth. Bien sûr, d'autres langues peuvent avoir des règles de casse de titre supplémentaires.
scottb

... S'il devait inclure cela, n'aurait-il pas besoin d'une recherche complète dans le dictionnaire juste pour déterminer si le mot actuel était un nom? Cela semble un peu trop pour n'importe quelle méthode.
MMJZ

Ce code est presque parfait car certains noms peuvent avoir des prépositons tels que de, del, della, dei, da comme dans Maria del Carmen, Maria da Silva, Maria della Salute, etc. coderanch.com/t/35096/Programming/…
Junior Mayhé

Cela ne rompt-il pas avec l'apostrophe? Qu'en est-il de O'Brian par exemple.
sproketboy

1
Remarque: pour éviter le redimensionnement de celui utilisé char[]en interne dans StringBuilderje suggère d'utilisernew StringBuilder(input.length())
Lino

38

Si je peux soumettre mon avis sur la solution ...

La méthode suivante est basée sur celle publiée par dfa. Il apporte le changement majeur suivant (qui est adapté à la solution dont j'avais besoin à l'époque): il force tous les caractères de la chaîne d'entrée en minuscules à moins qu'il ne soit immédiatement précédé d'un "délimiteur actionnable" auquel cas le caractère est contraint en haut de casse.

Une limitation majeure de ma routine est qu'elle fait l'hypothèse que la "casse de titre" est uniformément définie pour toutes les locales et est représentée par les mêmes conventions de casse que j'ai utilisées et donc elle est moins utile que le code de dfa à cet égard.

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();
}

VALEURS DE TEST

un string

maRTin O'maLLEY

John Wilkes-Booth

ENCORE UNE AUTRE CHAÎNE

LES SORTIES

Un string

Martin O'Malley

John Wilkes-Booth

Encore une autre chaîne


ne fonctionnera pas avec des ligatures comme lj, dont la majuscule est LJ mais la casse de titre est Lj. Utilisez Character.toTitleCaseplutôt.
mihi

@mihi: ne fonctionnera pas non plus avec d'autres règles spécialisées, par exemple. noms de famille tels que McNamara ou MacDonald.
scottb

mais ces cas ne peuvent pas être résolus par nature. L'utilisation de la fonction de conversion de casse correcte (titlecase est censée être utilisée pour mettre en majuscule un mot, et non en majuscule, selon les règles Unicode) peut être effectuée (et c'est facile).
mihi

Cela ne ferait-il pas aussi pour "elle" de devenir "elle"?
allicarn

C'est vrai. Cela fonctionne bien sur les champs de nom mais, comme vous le faites remarquer, pas sur la prose générale. Cela ne fonctionnerait même pas bien sur tous les noms, Vulcains en particulier (T'Pau au lieu de T'pau).
scottb


10

Vous pouvez utiliser les langages apache commons comme ceci:

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

vous pouvez trouver la documentation java ici: WordUtils.capitalizeFully java doc

et si vous souhaitez supprimer les espaces entre les mondes, vous pouvez utiliser:

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

vous pouvez trouver la doc java pour String StringUtils.remove java doc

j'espère que cette aide.



3

Voici une autre prise basée sur les réponses de @ dfa et @ scottb qui gère tous les caractères autres que des lettres / chiffres:

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();
    }

}

Compte tenu de l'entrée:

MARY ÄNN O'CONNEŽ-ŠUSLIK

la sortie est

Mary Änn O'Connež-Šuslik


2

C'est quelque chose que j'ai écrit pour convertir snake_case en lowerCamelCase mais pourrait facilement être ajusté en fonction des exigences

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());
}

Votre réponse fonctionne comme un charme, cependant, la solution ne semble pas gérer une séquence de mots uniques, peut-être qu'une condition if devrait suffire.
yashgarg1232

1

Je sais que c'est plus ancien, mais ne porte pas la réponse simple, j'avais besoin de cette méthode pour mon codage alors j'ai ajouté ici, simple à utiliser.

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

J'ai eu ce problème et je l'ai recherché, puis j'ai créé ma propre méthode en utilisant des mots-clés Java, il suffit de passer la variable String en tant que paramètre et d'obtenir la sortie sous le nom de String approprié.

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 ();
    }
}

Ici, je n'ai utilisé la méthode de coupe nulle part parce que dans mon cas, je recevais une chaîne coupée appropriée.
Parveen Sishodiya

0

vous pouvez très bien utiliser

org.apache.commons.lang.WordUtils

ou

CaseFormat

de l'API de Google.


1
Il serait utile d'ajouter la méthode et un exemple.
jechaviz

CaseFormat n'a que des formats généralement utilisés dans les identificateurs de programme (UpperCamel, low-hypen, UPPER_UNDERSCORE, etc.) et ne prend en charge que le texte ASCII. Cela ne fonctionnerait pas bien pour la conversion en cas de titre.
M. Justin

0

J'ai récemment rencontré ce problème et j'ai malheureusement eu de nombreuses occurrences de noms commençant par Mc et Mac, j'ai fini par utiliser une version du code de scottb que j'ai modifiée pour gérer ces préfixes, donc c'est ici au cas où quelqu'un voudrait l'utiliser.

Il y a encore des cas extrêmes que cela manque, mais la pire chose qui puisse arriver est qu'une lettre sera en minuscule alors qu'elle devrait être en majuscule.

/**
 * 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

Conversion en cas de titre approprié:

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);

Résultat: "Ceci est un texte"


0

Utilisation de Spring StringUtils:

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

Si vous utilisez déjà Spring de toute façon, cela évite d'introduire un autre framework.


0

Utilisez cette méthode pour convertir une chaîne en casse de titre:

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

Ce convertisseur transforme toute chaîne contenant une casse de chameau, des espaces blancs, des chiffres et d'autres caractères en casse de titre nettoyée.

/**
 * 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();
    }
}

Voici quelques entrées:

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

Et mes sorties:

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

Il semble qu'aucune des réponses ne le formate dans le cas du titre actuel: "Comment décrocher votre emploi de rêve", "Pour tuer un moqueur", etc. donc j'ai fait ma propre méthode. Fonctionne mieux pour les textes en anglais.

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

C'est la solution la plus simple

    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

Cela devrait fonctionner:

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
Ce n'est pas une réponse valide car l'OP a demandé une fonction intégrée . Voir aussi le commentaire qui traite de la complexité cachée derrière cela, à savoir i18n.
Marcus

-2

Le moyen le plus simple de convertir une chaîne en cas de titre consiste à utiliser le package googles org.apache.commons.lang.WordUtils

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

En résultera

Ce sera mon exemple

Je ne sais pas pourquoi il s'appelle "capitalizeFully", où en fait la fonction ne fait pas un résultat capital complet, mais de toute façon, c'est l'outil dont nous avons besoin.


1
Il est nommé capitalizeFullycar il met en majuscule chaque mot, y compris ceux qui doivent être en minuscules dans un titre. grammar.about.com/od/tz/g/Title-Case.htm
aij

2
Apache Commons n'appartient pas à Google. Il est maintenu par l'Apache Software Foundation. commons.apache.org
ATutorMe

-3

Désolé, je suis un débutant donc mon habitude de coder est nul!

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!"));
    }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.