Esiste un metodo per la conversione di stringhe in maiuscole / minuscole?


99

Sono disponibili metodi incorporati per convertire una stringa nel formato maiuscolo / minuscolo?


3
Tutti leggono questa domanda: attenzione che molte delle risposte più votate qui NON FUNZIONANO CORRETTAMENTE per tutte le lingue. È necessaria una libreria compatibile con i18n per un corretto titlecasing, come ICU4J (vedere la risposta di Daniel F).
sffc

Risposte:


106

Apache Commons StringUtils.capitalize () o Commons Text WordUtils.capitalize ()

ad esempio: WordUtils.capitalize("i am FINE") = "I Am FINE"da WordUtils doc


14
WordUtils.capitalizeFully () era migliore per me in quanto dà: WordUtils.capitalizeFully ("i am FINE") = "I Am Fine"
theINtoy

2
Solo un piccolo aggiornamento, WordUtils è passato a Commons Text ed è deprecato all'interno di Commons Lang
msrd0

Anche la primavera haStringUtils.capitalise()
OrangeDog

@OrangeDog intendi capitalize()?
TylerH

@TylerH sì, la correzione automatica è arrivata
OrangeDog

60

Non ci sono metodi capitalize () o titleCase () nella classe String di Java. Hai due scelte:

 StringUtils.capitalize(null)  = null
 StringUtils.capitalize("")    = ""
 StringUtils.capitalize("cat") = "Cat"
 StringUtils.capitalize("cAt") = "CAt"
 StringUtils.capitalize("'cat'") = "'cat'"
  • scrivi (ancora un altro) metodo di supporto statico aTitleCase ()

Esempio di implementazione

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

Testcase

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

uscite:

Corda
Un'altra stringa
ANCORA UN'ALTRA STRINGA

1
Questa è una bella routine, ma fallisce nel caso più generale in cui le stringhe possono rappresentare i nomi. In questo caso, le lettere maiuscole dovrebbero essere inserite anche dopo gli apostrofi e i trattini. Per esempio. O'Connor e J. Wilkes-Booth. Naturalmente, altre lingue possono avere regole aggiuntive per le maiuscole / minuscole.
scottb

... Se dovesse includerlo, non avrebbe bisogno di un'intera ricerca nel dizionario solo per capire se la parola corrente fosse un nome? Sembra un po 'troppo per qualsiasi metodo.
MMJZ

Questo codice va quasi bene perché alcuni nomi possono avere preposizioni come de, del, della, dei, da come in Maria del Carmen, Maria da Silva, Maria della Salute, ecc. Coderanch.com/t/35096/Programming/…
Junior Mayhé

Questo non rompe con l'apostrofo? Che dire di O'Brian, ad esempio.
sproketboy

1
Nota: per evitare il ridimensionamento del usata internamente char[]in StringBuilderSuggerisco usandonew StringBuilder(input.length())
Lino

38

Se posso presentare la mia opinione sulla soluzione ...

Il metodo seguente si basa su quello pubblicato da DFA. Apporta la seguente modifica principale (che è adatta alla soluzione di cui avevo bisogno al momento): forza tutti i caratteri nella stringa di input in minuscolo a meno che non sia immediatamente preceduto da un "delimitatore utilizzabile", nel qual caso il carattere è costretto a maiuscolo.

Una delle principali limitazioni della mia routine è che presuppone che "maiuscole / minuscole" sia definita in modo uniforme per tutte le impostazioni locali ed è rappresentata dalle stesse convenzioni sui casi che ho usato e quindi è meno utile del codice di dfa in questo senso.

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

VALORI DI PROVA

una stringa

maRTin o'maLLEY

john wilkes-booth

ANCORA UN'ALTRA STRINGA

USCITE

Una stringa

Martin O'Malley

John Wilkes-Booth

Ancora un'altra stringa


non funzionerà con legature come lj, la cui maiuscola è LJ ma il titolo è Lj. Usa Character.toTitleCaseinvece.
mihi

@mihi: inoltre non funzionerà con altre regole specializzate, ad es. cognomi come McNamara o MacDonald.
scottb

ma questi casi intrinsecamente non possono essere risolti. Utilizzando la funzione caso di conversione corretto (Titlecase dovrebbe essere utilizzato per capitalizzare una parola, e non maiuscolo, in base alle leggi Unicode) può essere fatto (ed è facile).
mihi

Questo (non lo farebbe) fare in modo che anche "lei" diventi "Lei"?
allicarn

È vero. Funziona bene sui campi nome ma, come fai notare, non sulla prosa generale. Non funzionerebbe nemmeno bene con tutti i nomi, i Vulcaniani in particolare (T'Pau invece di T'pau).
scottb

21

Usa WordUtils.capitalizeFully () da Apache Commons.

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

1
Bella soluzione! Grazie! Ma questo non funziona il 100% delle volte, poiché in questo titolo viene anche scritto in maiuscolo, ad esempio, "a": "Questo è un titolo". Vedi english.stackexchange.com/questions/14/… . Conosci qualche biblioteca che si occupa di questo?
Eirik W

10

Puoi usare apache commons lang in questo modo:

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

puoi trovare il documento java qui: WordUtils.capitalizeFully java doc

e se vuoi rimuovere gli spazi tra i mondi puoi usare:

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

puoi trovare il documento java per String StringUtils.remove java doc

spero che questo aiuto.



3

Ecco un'altra versione basata sulle risposte di @ dfa e @ scottb che gestisce qualsiasi carattere non costituito da lettere / cifre:

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

}

Input fornito:

MARY ÄNN O'CONNEŽ-ŠUSLIK

l'uscita è

Mary Änn O'Connež-Šuslik


2

Questo è qualcosa che ho scritto per convertire snake_case in lowerCamelCase ma potrebbe essere facilmente regolato in base ai requisiti

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

La tua risposta funziona come un incantesimo, tuttavia, la soluzione non sembra gestire una singola sequenza di parole, forse una condizione if dovrebbe essere sufficiente.
yashgarg1232

1

So che questo è più vecchio, ma non porta la risposta semplice, avevo bisogno di questo metodo per la mia codifica, quindi ho aggiunto qui, semplice da usare.

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

Ho avuto questo problema e l'ho cercato, quindi ho creato il mio metodo utilizzando alcune parole chiave java, basta passare la variabile String come parametro e ottenere l'output come stringa dal titolo appropriato.

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

Qui non ho usato il metodo di taglio da nessuna parte perché nel mio caso stavo ottenendo una corda tagliata adeguata.
Parveen Sishodiya

0

puoi benissimo usare

org.apache.commons.lang.WordUtils

o

CaseFormat

dall'API di Google.


1
Sarebbe utile aggiungere il metodo e un esempio.
jechaviz

CaseFormat ha solo formati tipicamente utilizzati negli identificatori di programma (UpperCamel, lower-hypen, UPPER_UNDERSCORE, ecc.) E supporta solo il testo ASCII. Non funzionerebbe bene per la conversione in caso del titolo.
M. Justin

0

Recentemente ho riscontrato anche questo problema e sfortunatamente ho avuto molte occorrenze di nomi che iniziano con Mc e Mac, ho finito per usare una versione del codice di scottb che ho cambiato per gestire questi prefissi, quindi è qui nel caso qualcuno volesse usarlo.

Ci sono ancora casi limite in cui questo manca, ma la cosa peggiore che può accadere è che una lettera sarà minuscola quando dovrebbe essere maiuscola.

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

Conversione in maiuscolo del titolo appropriato:

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

Risultato: "Questo è un testo"


0

Utilizzando Spring's StringUtils:

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

Se stai già usando Spring comunque, questo evita di portare in un altro framework.


0

Usa questo metodo per convertire una stringa in maiuscolo / minuscolo:

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

Questo convertitore trasforma qualsiasi stringa contenente lettere maiuscole, spazi bianchi, cifre e altri caratteri in maiuscole per titoli sterilizzate.

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

Ecco alcuni input:

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

E le mie uscite:

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

Sembra che nessuna delle risposte lo formatta nel caso del titolo reale: "How to Land Your Dream Job", "To Kill a Mockingbird", ecc. Quindi ho creato il mio metodo. Funziona meglio per i testi in lingua inglese.

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

Questa è la soluzione più semplice

    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

Questo dovrebbe funzionare:

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
Questa non è una risposta valida poiché l'OP ha richiesto la funzione incorporata . Vedi anche il commento che affronta la complessità nascosta dietro questo, cioè i18n.
Marcus

-2

Il modo più semplice per convertire qualsiasi stringa in maiuscole / minuscole è utilizzare il pacchetto googles org.apache.commons.lang.WordUtils

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

Risulterà questo

Questo sarà il mio esempio

Non sono sicuro del motivo per cui si chiama "capitalizeFully", dove in realtà la funzione non sta facendo un risultato pieno di capitale, ma comunque, questo è lo strumento di cui abbiamo bisogno.


1
È denominato capitalizeFullyperché mette in maiuscolo ogni parola, comprese quelle che dovrebbero essere minuscole in un titolo. grammar.about.com/od/tz/g/Title-Case.htm
aij

2
Apache Commons non è di proprietà di Google. È gestito da Apache Software Foundation. commons.apache.org
ATutorMe

-3

Scusa se sono un principiante quindi la mia abitudine di programmazione fa schifo!

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!"));
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.