我想从用户那里获取一个字符串输入,并对其进行格式化,以便第一个字母大写,其余字母不大写。我想通过分割字符串中的第一个字母并在其上使用.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;
答案 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;
希望这有帮助。