我有一个非常愚蠢的问题,但是由于我是初学者,所以我不知道该怎么办。 从标题中,您可能会猜到我需要什么帮助...

这是我创建的基本程序:

// 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"响应。

当人们要求"显示您的代码"时,他们的意思不是"显示您程序中的所有代码,但与您的问题无关"。 在这种情况下,您什么也没有显示,甚至无法尝试转换字符串的大小写-您显示的所有内容都不相关。

您可以使用WordUtils#capitalizeFully()

您将需要String类的一些方法:

substring(int,int):从索引获取子字符串

substring(int):获取从索引到字符串结尾的子字符串

toLowerCase():将整个字符串转换为小写

toUpperCase():将整个字符串转换为大写

同时使用substring方法来获取第一个字母和其余名称作为单独的字符串。然后使用toUpperCase()和toLowerCase()并将字符串重新连接在一起。

一排:

String str ="jake";

String out = str.substring(0, 1).toUpperCase() + str.substring(1);

顺便说一句,作为其他选择,您将使用WordUtils

WordUtils.capitalize("i am FINE") ="I Am FINE"

如果可以使用3rd party lib。使用此WordUtils#capitalizeFully(String)。或者,如果这是家庭作业,并且您必须自己做,请参阅String#toLowerCase(),然后查看String#toUpperCase()作为第一个字符,请参阅String#substring。

Apache Commons库具有一组不错的字符串实用程序。

capitalizeFully方法完全可以满足您的需求。

WordUtils.capitalizeFully("pOkEmOn lolz NOOBZ"); // returns Pokemon Lolz Noobz

的确,此解决方案需要一个额外的整体依赖关系,但是该方法可以处理单字和多字输入。此外,库中还有很多其他整洁的东西,我实际上还没有从事过不使用它的项目。

如果您想使用香草Java API,则可以使用

name = name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();

但是,这仅适用于单个单词。某些用户可能会想输入全名,例如Bender Bending Rodriguez。可以通过将其与split方法结合使用来轻松解决此问题,但我将其留给您;)

这是否有帮助:

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);

首先是小写输入,然后是大写第一个字符:

String name ="Jake";

String lower= name.toLowerCase();

之后,请看这里:第一个字符为大写