将第一个字母与String分开以进行大写

时间:2014-10-23 19:46:26

标签: java string split capitalization

我想从用户那里获取一个字符串输入,并对其进行格式化,以便第一个字母大写,其余字母不大写。我想通过分割字符串中的第一个字母并在其上使用.toUpperCase()并在其余部分上使用.toLowerCase(),然后将它们合并在一起来实现此目的。

我有一个想法,但无法解决所有问题:

userInput = input.nextLine();
String firstLetter = ???
firstLetter.toUpperCase();
restOfString.toLowerCase();
String merged = firstLetter + restOfString;

这似乎不起作用:

            name = input.nextLine();
            firstLetter = name.substring(0,1);
            remainingString = name.substring(1);
            firstLetter.toUpperCase();
            remainingString.toLowerCase();
            name = firstLetter + remainingString;

2 个答案:

答案 0 :(得分:3)

您可以使用子字符串。

String firstLetter = userInput.substring(0,1); //takes first letter
String restOfString = userInput.substring(1); //takes rest of sentence
firstLetter = firstLetter.toUpperCase(); //make sure to set the string, the methods return strings, they don't change the string itself
restOfString = restOfString.toLowerCase();
String merged = firstletter + restOfString;

编辑:如果您希望对用户的输入进行错误检查:

if(userInput.length < 2) {
    throw new InputMismatchException("Sentence too short to properly capitalize!";
}

答案 1 :(得分:1)

我猜您正在使用基于toUpperCase()的Java。我建议你做的是使用charAt()获取第一个字母,然后使用子字符串来完成其余的工作。

您可以尝试这样的事情:

String firstLetter = userInput.substring(0, 1); // Get first element. If you don't understand substring, let me know.
string remainingString = userInput.substring(1); // Grab chars from index 1 to the end.

firstLetter.toUpperCase(); // Capitalize string
remainingString.toLowerCase(); // Lowercase rest of string

String finalString = firstLetter + remainingString;

希望这有帮助。