我有一个非常愚蠢的问题,但我不知道自从我是初学者后会做些什么。从标题中,您可以猜到我需要帮助...
这是我创建的基本程序:
// Character name.
import java.util.Scanner;
public class name {
public void charName(){
Scanner input = new Scanner(System.in);
String name;
System.out.println("What is your name?");
name = input.nextLine();
System.out.println(name + "? That's a very nice name, pleased to meet you!");
}
}
这会询问名称,然后再次重复该名称以及声明。我的问题是,这回复了我输入的确切内容,所以如果我输入“jake”它将回复“jake”或如果我输入“JaKe”它将回复“JaKe”。我希望这个程序能够说出第一个字母大写的人名,无论我怎么输入它。例如。我键入“JAKE”,但它以“Jake”响应。
答案 0 :(得分:3)
您需要String
class的一些方法:
使用两个substring
方法将第一个字母和名称的其余部分作为单独的字符串。然后使用toUpperCase()
和toLowerCase()
并将字符串重新连接在一起。
答案 1 :(得分:2)
一行:
String str = "jake";
String out = str.substring(0, 1).toUpperCase() + str.substring(1);
BTW,作为其他选项,您可以使用WordUtils
WordUtils.capitalize("i am FINE") = "I Am FINE"
答案 2 :(得分:0)
首先是小写输入,然后是大写第一个char:
String name = "Jake";
String lower= name.toLowerCase();
之后看一下:First char to upper case
答案 3 :(得分:0)
这有用吗:
String capSmall = "jAKE";
String firstLetter = String.valueOf(capSmall.charAt(0));
String theRest = capSmall.substring(1);
String result = firstLetter.toUpperCase() + theRest.toLowerCase();
System.out.println("---"+result);
答案 4 :(得分:0)
Apache Commons库有一套很好的字符串实用程序。
capitalizeFully
method完全符合您的需要。
WordUtils.capitalizeFully("pOkEmOn lolz NOOBZ"); // returns Pokemon Lolz Noobz
这个解决方案确实需要一个完整的附加依赖,但该方法可以处理单字和多字输入。此外,库中有很多其他整洁的东西,我实际上没有处理过不会使用它的项目。
如果你想坚持使用vanilla Java API,你可以使用
name = name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();
但这只适用于一个单词。某些用户可能会想要输入Bender Bending Rodriguez
等全名。这可以通过将其与split
方法相结合轻松解决,但我将其留给您;)
答案 5 :(得分:0)
如果您可以使用第三方库。使用此WordUtils#capitalizeFully(String)。或者如果这是家庭作业,您必须自己做String#toLowerCase()然后String#toUpperCase()查看第一个字符,请参阅String#substring。