Как заглавные буквы первой буквы слова в строке с помощью Java?



пример строки



one thousand only
two hundred
twenty
seven


Как изменить первый символ строки в заглавной букве и не изменить регистр любой из других букв?



после изменения он должен быть:



One thousand only
Two hundred
Twenty
Seven


примечание: Я не хочу использовать Apache.палата общин.ленг.Слова, чтобы сделать это.

1168   15  

15 ответов:

если вы хотите использовать только первую букву строки с именем input а остальные оставьте в покое:

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

теперь output будет то, что вы хотите. Проверьте, что ваш input по крайней мере один символ задолго до использования этого, в противном случае вы получите исключение.

public String capitalizeFirstLetter(String original) {
    if (original == null || original.length() == 0) {
        return original;
    }
    return original.substring(0, 1).toUpperCase() + original.substring(1);
}

просто... полное решение, я вижу, что это просто закончилось объединением того, что все остальные закончили публикацией =P.

самый простой способ-использовать org.apache.commons.lang.StringUtils класс

StringUtils.capitalize(Str);

кроме того, есть org.springframework.util.StringUtils in Spring Framework:

StringUtils.capitalize(str);
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 sequence of words from standard input and capitalize each
 *  one (make first letter uppercase; make rest lowercase).
 *
 *  % java Capitalize
 *  now is the time for all good 
 *  Now Is The Time For All Good 
 *  to be or not to be that is the question
 *  To Be Or Not To Be That Is The Question 
 *
 *  Remark: replace sequence of whitespace with a single space.
 *
 *************************************************************************/

public class Capitalize {

    public static String capitalize(String s) {
        if (s.length() == 0) return s;
        return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
    }

    public static void main(String[] args) {
        while (!StdIn.isEmpty()) {
            String line = StdIn.readLine();
            String[] words = line.split("\s");
            for (String s : words) {
                StdOut.print(capitalize(s) + " ");
            }
            StdOut.println();
        }
    }

}

пример использования класса 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);
} 

его простой только один код строки необходим для этого. если String A = scanner.nextLine(); затем вам нужно написать это, чтобы отобразить строку с этой первой буквой.

System.out.println(A.substring(0, 1).toUpperCase() + A.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);

добавить все вместе, это хорошая идея, чтобы обрезать за лишнего пробела в начале строки. Иначе. ,функция 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);
    }
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);
    }
 }

вы можете просто использовать встроенную функцию в java.пакет утиль:

>> import java.util.*;

>> System.out.println(capitalize(input));

убедитесь, что строки не заглавными буквами перед рукой.

Comments

    Ничего не найдено.