如何在Java中自动大写输入的字母

时间:2013-10-04 22:07:38

标签: java

我有一个非常愚蠢的问题,但我不知道自从我是初学者后会做些什么。从标题中,您可以猜到我需要帮助...

这是我创建的基本程序:

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

6 个答案:

答案 0 :(得分:3)

您需要String class的一些方法:

  • substring(int,int):从索引
  • 获取子字符串
  • substring(int):从索引到字符串末尾的子字符串
  • toLowerCase():将整个字符串转换为小写
  • toUpperCase():将整个字符串转换为UPPERCASE

使用两个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