在Java中,如何使一个字符串的首字母变为大写

本文介绍了两种在Java中将字符串首字母转换为大写的方法。一种是通过基本的字符串操作实现,另一种则是利用Apache Commons Lang库中的StringUtils类简化代码。同时也提供了处理特殊情况的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:在Java中,如何使一个字符串的首字母变为大写

我使用Java去获取用户的字符串输入。我尝试使他们输入的第一个字符大写

我尝试这样:

String name;

BufferedReader br = new InputStreamReader(System.in);

String s1 = name.charAt(0).toUppercase());

System.out.println(s1 + name.substring(1));

导致了编译错误

Type mismatch: cannot convert from InputStreamReader to BufferedReader

Cannot invoke toUppercase() on the primitive type char

回答一

String str = "java";
String cap = str.substring(0, 1).toUpperCase() + str.substring(1);
// cap = "Java"

在你的例子中

public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    // Actually use the Reader
    String name = br.readLine();
    // Don't mistake String object with a Character object
    String s1 = name.substring(0, 1).toUpperCase();
    String nameCapitalized = s1 + name.substring(1);
    System.out.println(nameCapitalized);
}

回答二

使用 Apache的工具库。把你的大脑从这些事情里解放出来并且避免空指针和数组越界

步骤 1:

通过把这个放进去build.gradle的依赖理,来导入apache's common lang library

compile 'org.apache.commons:commons-lang3:3.6'

步骤 2:

如果你确定你的字符串都是小写的,或者你需要初始化所有的首字符,直接这样调用

StringUtils.capitalize(yourString);

如果你想要确保只有首字母是大写的,像这样做一个枚举,调用首先调用toLowerCase(),但是记住如果你输入的是空字符串,他会报空指针异常

StringUtils.capitalize(YourEnum.STUFF.name().toLowerCase());
StringUtils.capitalize(yourString.toLowerCase());
Here are more samples provided by apache. it's exception free

这里有一些apache提供的例子,是没有异常的。

StringUtils.capitalize(null)  = null
StringUtils.capitalize("")    = ""
StringUtils.capitalize("cat") = "Cat"
StringUtils.capitalize("cAt") = "CAt"
StringUtils.capitalize("'cat'") = "'cat'"

注意

WordUtils 也包含在这个库里面, 但是已经过时了,就不要再使用了.

文章翻译自Stack Overflow:https://stackoverflow.com/questions/3904579/how-to-capitalize-the-first-letter-of-a-string-in-java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值