我使用Java从用户获得一个字符串输入。我试着让输入的第一个字母大写。

我试了一下:

String name;

BufferedReader br = new InputStreamReader(System.in);

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

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

这导致了以下编译错误:

类型不匹配:不能从InputStreamReader转换为BufferedReader 不能在基本类型char上调用toUppercase()


当前回答

Java:

简单的一个帮助方法,用于大写每个字符串。

public static String capitalize(String str)
{
    if(str == null || str.length()<=1) return str;
    return str.substring(0, 1).toUpperCase() + str.substring(1);
}

然后调用str = capitalize(str)


科特林:

str.capitalize()

其他回答

你可以使用类WordUtils。

假设你的字符串是“当前地址”,然后使用

* * * *强烈textWordutils.capitaliz(字符串); 输出:当前地址

参见:http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html

在Android Studio中

将此依赖项添加到构建中。gradle(模块:app)

dependencies {
    ...
    compile 'org.apache.commons:commons-lang3:3.1'
    ...
}

现在你可以使用

String string = "STRING WITH ALL CAPPS AND SPACES";

string = string.toLowerCase(); // Make all lowercase if you have caps

someTextView.setText(WordUtils.capitalize(string));

这是我这边的解决方案,所有条件都检查过了。

   import java.util.Objects;

public class CapitalizeFirstCharacter {

    public static void main(String[] args) {

        System.out.println(capitailzeFirstCharacterOfString("jwala")); //supply input string here
    }

    private static String capitailzeFirstCharacterOfString(String strToCapitalize) {

        if (Objects.nonNull(strToCapitalize) && !strToCapitalize.isEmpty()) {
            return strToCapitalize.substring(0, 1).toUpperCase() + strToCapitalize.substring(1);
        } else {
            return "Null or Empty value of string supplied";

        }

    }

}

使用Apache的公共库。把你的大脑从这些东西中解放出来,避免空指针和索引脱离绑定异常

步骤1:

在build中导入apache的common lang库。gradle依赖性

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

步骤2:

如果你确定你的字符串都是小写的,或者你只需要初始化第一个字母,直接调用

StringUtils.capitalize(yourString);

如果你想确保只有第一个字母是大写的,就像在枚举中那样,首先调用toLowerCase(),并记住,如果输入字符串为空,它将抛出NullPointerException。

StringUtils.capitalize(YourEnum.STUFF.name().toLowerCase());
StringUtils.capitalize(yourString.toLowerCase());

以下是apache提供的更多示例。它是无异常的

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

注意:

WordUtils也包含在这个库中,但已弃用。请不要用这个。

那些谁搜索首字母大写的名字在这里..

public static String capitaliseName(String name) {
    String collect[] = name.split(" ");
    String returnName = "";
    for (int i = 0; i < collect.length; i++) {
        collect[i] = collect[i].trim().toLowerCase();
        if (collect[i].isEmpty() == false) {
            returnName = returnName + collect[i].substring(0, 1).toUpperCase() + collect[i].substring(1) + " ";
        }
    }
    return returnName.trim();
}

usase: capitaliseName(“saurav khan”); 输出:Saurav Khan