如何使用Java将字符串中的第一个字母大写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Java将字符串中的第一个字母大写?相关的知识,希望对你有一定的参考价值。

示例字符串

one thousand only
two hundred
twenty
seven

如何更改大写字母中字符串的第一个字符而不更改任何其他字母的大小写?

改变之后应该是:

One thousand only
Two hundred
Twenty
Seven

注意:我不想使用apache.commons.lang.WordUtils来执行此操作。

答案

如果您只想将名为input的字符串的第一个字母大写,并将其余部分单独保留:

String output = input.substring(0, 1).toUpperCase() + input.substring(1);

现在,output将拥有你想要的东西。在使用之前检查你的input至少是一个字符,否则你会得到一个例外。

另一答案

使用StringTokenizer类的示例:

String st = "  hello all students";
String st1;
char f;
String fs="";
StringTokenizer a= new StringTokenizer(st);
while(a.hasMoreTokens())   
        st1=a.nextToken();
        f=Character.toUpperCase(st1.charAt(0));
        fs+=f+ st1.substring(1);
        System.out.println(fs);
 
另一答案

将所有内容添加到一起,最好在字符串的开头修剪额外的空白区域。否则,.substring(0,1).toUpperCase将尝试大写空格。

    public String capitalizeFirstLetter(String original) 
        if (original == null || original.length() == 0) 
            return original;
        
        return original.trim().substring(0, 1).toUpperCase() + original.substring(1);
    
另一答案

StringBuilder的解决方案:

value = new StringBuilder()
                .append(value.substring(0, 1).toUpperCase())
                .append(value.substring(1))
                .toString();

..基于以前的答案

另一答案

用这个:

char[] chars = Character.toUpperCase(A.charAt(0)), 
Character.toUpperCase(B.charAt(0));
String a1 = chars[0] + A.substring(1);
String b1 = chars[1] + B.substring(1);
另一答案

鉴于input字符串:

Character.toUpperCase(input.charAt(0)) + input.substring(1).toLowerCase()
另一答案

您可以尝试以下代码:

public string capitalize(str) 
    String[] array = str.split(" ");
    String newStr;
    for(int i = 0; i < array.length; i++) 
        newStr += array[i].substring(0,1).toUpperCase() + array[i].substring(1) + " ";
    
    return newStr.trim();

另一答案

我的功能方法。在整段中的whitescape之后,它的句子中的第一个字符。

对于capatilising只有单词的第一个字符只需删除.split(“”)

           b.name.split(" ")
                 .filter  !it.isEmpty() 
                 .map  it.substring(0, 1).toUpperCase() 
                 +it.substring(1).toLowerCase() 
                  .joinToString(" ")
另一答案
public static String capitalize(String str)
        String[] inputWords = str.split(" ");
        String outputWords = "";
        for (String word : inputWords)
            if (!word.isEmpty())
                outputWords = outputWords + " "+StringUtils.capitalize(word);
            
        
        return outputWords;
    
另一答案

我想在接受的答案上添加NULL检查和IndexOutOfBoundsException。

String output = input.substring(0, 1).toUpperCase() + input.substring(1);

Java代码:

  class Main 
      public static void main(String[] args) 
        System.out.println("Capitalize first letter ");
        System.out.println("Normal  check #1      : ["+ captializeFirstLetter("one thousand only")+"]");
        System.out.println("Normal  check #2      : ["+ captializeFirstLetter("two hundred")+"]");
        System.out.println("Normal  check #3      : ["+ captializeFirstLetter("twenty")+"]");
        System.out.println("Normal  check #4      : ["+ captializeFirstLetter("seven")+"]");

        System.out.println("Single letter check   : ["+captializeFirstLetter("a")+"]");
        System.out.println("IndexOutOfBound check : ["+ captializeFirstLetter("")+"]");
        System.out.println("Null Check            : ["+ captializeFirstLetter(null)+"]");
      

      static String captializeFirstLetter(String input)
             if(input!=null && input.length() >0)
                input = input.substring(0, 1).toUpperCase() + input.substring(1);
            
            return input;
        
    

输出:

Normal  check #1      : [One thousand only]
Normal  check #2      : [Two hundred]
Normal  check #3      : [Twenty]
Normal  check #4      : [Seven]
Single letter check   : [A]
IndexOutOfBound check : []
Null Check            : [null]
另一答案

2019年7月更新

目前,用于执行此操作的最新库函数包含在org.apache.commons.lang3.StringUtils

import org.apache.commons.lang3.StringUtils;

StringUtils.capitalize(myString);

如果您正在使用Maven,请在pom.xml中导入依赖项:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.9</version>
</dependency>
另一答案
public String capitalizeFirstLetter(String original) 
    if (original == null || original.length() == 0) 
        return original;
    
    return original.substring(0, 1).toUpperCase() + original.substring(1);

只是...一个完整的解决方案,我看到它刚刚结束了所有其他人最终发布= P的结合。

另一答案
Simplest way to do is:
class Test 
     public static void main(String[] args) 
        String newString="";
        String test="Hii lets cheCk for BEING String";  
        String[] splitString = test.split(" ");
        for(int i=0; i<splitString.length; i++)
            newString= newString+ splitString[i].substring(0,1).toUpperCase() 
                    + splitString[i].substring(1,splitString[i].length()).toLowerCase()+" ";
        
        System.out.println("the new String is "+newString);
    
 
另一答案

最简单的方法是使用org.apache.commons.lang.StringUtils

StringUtils.capitalize(Str);

另一答案

另外,Spring Framework中有org.springframework.util.StringUtils

StringUtils.capitalize(str);
另一答案

StringUtils.capitalize(str)

来自apache commons-lang

另一答案
String sentence = "ToDAY   WeAthEr   GREat";    
public static String upperCaseWords(String sentence) 
        String words[] = sentence.replaceAll("\\s+", " ").trim().split(" ");
        String newSentence = "";
        for (String word : words) 
            for (int i = 0; i < word.length(); i++)
                newSentence = newSentence + ((i == 0) ? word.substring(i, i + 1).toUpperCase(): 
                    (i != word.length() - 1) ? word.substring(i, i + 1).toLowerCase() : word.substring(i, i + 1).toLowerCase().toLowerCase() + " ");
        

        return newSentence;
    
//Today Weather Great
另一答案
String s=t.getText().trim();
int l=s.length();
char c=Character.toUpperCase(s.charAt(0));
s=c+s.substring(1);
for(int i=1; i<l; i++)
    
        if(s.charAt(i)==' ')
        
            c=Character.toUpperCase(s.charAt(i+1));
            s=s.substring(0, i) + c + s.substring(i+2);
        
    
    t.setText(s);
另一答案

你走了(希望这能给你一个想法):

/*************************************************************************
 *  Compilation:  javac Capitalize.java
 *  Execution:    java Capitalize < input.txt
 * 
 *  Read in a sequenc

以上是关于如何使用Java将字符串中的第一个字母大写?的主要内容,如果未能解决你的问题,请参考以下文章

如何使单词的第一个字母大写? [复制]

如何将字符串的第一个字母大写

Java如何将每个单词的第一个字符转为大写?

java 如何将一个字符串数组每行的第一个英文字母变成大写

Java如何将每个单词的第一个字符转为大写

如何在Java中将String的第一个字母大写?