How to capitalize the first character of each word in a string

后端 未结 30 1413
情深已故
情深已故 2020-11-22 02:08

Is there a function built into Java that capitalizes the first character of each word in a String, and does not affect the others?

Examples:

  • jon
相关标签:
30条回答
  • 2020-11-22 02:21
    String s="hi dude i                                 want apple";
        s = s.replaceAll("\\s+"," ");
        String[] split = s.split(" ");
        s="";
        for (int i = 0; i < split.length; i++) {
            split[i]=Character.toUpperCase(split[i].charAt(0))+split[i].substring(1);
            s+=split[i]+" ";
            System.out.println(split[i]);
        }
        System.out.println(s);
    
    0 讨论(0)
  • 2020-11-22 02:25

    WordUtils.capitalize(str) (from apache commons-text)

    (Note: if you need "fOO BAr" to become "Foo Bar", then use capitalizeFully(..) instead)

    0 讨论(0)
  • 2020-11-22 02:25

    From Java 9+

    you can use String::replaceAll like this :

    public static void upperCaseAllFirstCharacter(String text) {
        String regex = "\\b(.)(.*?)\\b";
        String result = Pattern.compile(regex).matcher(text).replaceAll(
                matche -> matche.group(1).toUpperCase() + matche.group(2)
        );
    
        System.out.println(result);
    }
    

    Example :

    upperCaseAllFirstCharacter("hello this is Just a test");
    

    Outputs

    Hello This Is Just A Test
    
    0 讨论(0)
  • 2020-11-22 02:25

    Use:

        String text = "jon skeet, miles o'brien, old mcdonald";
    
        Pattern pattern = Pattern.compile("\\b([a-z])([\\w]*)");
        Matcher matcher = pattern.matcher(text);
        StringBuffer buffer = new StringBuffer();
        while (matcher.find()) {
            matcher.appendReplacement(buffer, matcher.group(1).toUpperCase() + matcher.group(2));
        }
        String capitalized = matcher.appendTail(buffer).toString();
        System.out.println(capitalized);
    
    0 讨论(0)
  • 2020-11-22 02:25
    package corejava.string.intern;
    
    import java.io.DataInputStream;
    
    import java.util.ArrayList;
    
    /*
     * wap to accept only 3 sentences and convert first character of each word into upper case
     */
    
    public class Accept3Lines_FirstCharUppercase {
    
        static String line;
        static String words[];
        static ArrayList<String> list=new ArrayList<String>();
    
        /**
         * @param args
         */
        public static void main(String[] args) throws java.lang.Exception{
    
            DataInputStream read=new DataInputStream(System.in);
            System.out.println("Enter only three sentences");
            int i=0;
            while((line=read.readLine())!=null){
                method(line);       //main logic of the code
                if((i++)==2){
                    break;
                }
            }
            display();
            System.out.println("\n End of the program");
    
        }
    
        /*
         * this will display all the elements in an array
         */
        public static void display(){
            for(String display:list){
                System.out.println(display);
            }
        }
    
        /*
         * this divide the line of string into words 
         * and first char of the each word is converted to upper case
         * and to an array list
         */
        public static void method(String lineParam){
            words=line.split("\\s");
            for(String s:words){
                String result=s.substring(0,1).toUpperCase()+s.substring(1);
                list.add(result);
            }
        }
    
    }
    
    0 讨论(0)
  • 2020-11-22 02:26

    There are many way to convert the first letter of the first word being capitalized. I have an idea. It's very simple:

    public String capitalize(String str){
    
         /* The first thing we do is remove whitespace from string */
         String c = str.replaceAll("\\s+", " ");
         String s = c.trim();
         String l = "";
    
         for(int i = 0; i < s.length(); i++){
              if(i == 0){                              /* Uppercase the first letter in strings */
                  l += s.toUpperCase().charAt(i);
                  i++;                                 /* To i = i + 1 because we don't need to add               
                                                        value i = 0 into string l */
              }
    
              l += s.charAt(i);
    
              if(s.charAt(i) == 32){                   /* If we meet whitespace (32 in ASCII Code is whitespace) */
                  l += s.toUpperCase().charAt(i+1);    /* Uppercase the letter after whitespace */
                  i++;                                 /* Yo i = i + 1 because we don't need to add
                                                       value whitespace into string l */
              }        
         }
         return l;
    }
    
    0 讨论(0)
提交回复
热议问题