java 字符串第一个_如何在Java中大写字符串的第一个字母?

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

}

StringUtils.capitalize(..)来自commons-lang

用于大写字符串首字母的较短/较快版本代码是:

String name = "stackoverflow";

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

name的值是"Stackoverflow"

使用Apache的公共库。从这些东西中释放你的大脑,避免使用Null Pointer&索引超出限制的例外

步骤1:

通过将其放入build.gradle依赖项中导入apache的常用lang库

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

第2步:

如果您确定您的字符串全部为小写,或者您只需要初始化第一个字母,请直接调用

StringUtils.capitalize(yourString);

如果你想确保只有第一个字母大写,比如为enum这样做,首先调用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也包含在此库中,但已弃用。请不要使用它。

你想做的可能是这样的:

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

(将第一个char转换为大写并添加原始字符串的其余部分)

此外,您创建一个输入流阅读器,但从不读取任何行。因此name总是null。

这应该工作:

BufferedReader br = new InputstreamReader(System.in);

String name = br.readLine();

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

来自Apache Commons的WordUtils.capitalize(java.lang.String)。

以下解决方案将有效。

String A = "stackOverflow";

String ACaps = A.toUpperCase().charAt(0)+A.substring(1,A.length());

//Will print StackOverflow

你不能在原始字符上使用toUpperCase(),但你可以先将整个String设置为大写,然后取第一个字符,然后附加到子字符串,如上所示。

使用WordUtils.capitalize(str)。

将字符串设置为小写,然后将第一个Letter设置为upper,如下所示:

userName = userName.toLowerCase();

然后把第一个字母大写:

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

substring只是得到一个更大的字符串,然后我们将它们组合在一起。

最短的:

String message = "my message";

message = Character.toUpperCase(message.charAt(0)) + message.substring(1);

System.out.println(message) // Will output: My message

为我工作。

String str1 = "hello";

str1.substring(0, 1).toUpperCase()+str1.substring(1);

您可以使用substring()执行此操作。

但有两种不同的情况:

情况1

如果你正在大写的String是人类可读的,你还应该指定默认的语言环境:

String firstLetterCapitalized =

myString.substring(0, 1).toUpperCase(Locale.getDefault()) + myString.substring(1);

案例2

如果您正在大写的String是机器可读的,请避免使用Locale.getDefault(),因为返回的字符串在不同区域之间会不一致,并且在这种情况下始终指定相同的区域设置(例如,toUpperCase(Locale.ENGLISH))。这将确保您用于内部处理的字符串是一致的,这将帮助您避免难以发现的错误。

注意:您不必为toLowerCase()指定Locale.getDefault(),因为这是自动完成的。

在Android Studio中

将此依赖项添加到build.gradle (Module: 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));

那么WordUtils.capitalizeFully()呢?

import org.apache.commons.lang3.text.WordUtils;

public class Main {

public static void main(String[] args) {

final String str1 = "HELLO WORLD";

System.out.println(capitalizeFirstLetter(str1)); // output: Hello World

final String str2 = "Hello WORLD";

System.out.println(capitalizeFirstLetter(str2)); // output: Hello World

final String str3 = "hello world";

System.out.println(capitalizeFirstLetter(str3)); // output: Hello World

final String str4 = "heLLo wORld";

System.out.println(capitalizeFirstLetter(str4)); // output: Hello World

}

private static String capitalizeFirstLetter(String str) {

return WordUtils.capitalizeFully(str);

}

}

这只是为了告诉你,你没有那么错。

BufferedReader br = new InputstreamReader(System.in);

// Assuming name is not blank

String name = br.readLine();

//No more error telling that you cant convert char to string

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

// Or, as Carlos prefers. See the comments to this post.

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

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

注意:这不是最好的方法。这只是为了向OP展示它也可以使用charAt()来完成。 ;)

试试这个

这个方法的作用是,考虑单词“hello world”这个方法把它变成“Hello World”大写每个单词的开头。

private String capitalizer(String word){

String[] words = word.split(" ");

StringBuilder sb = new StringBuilder();

if (words[0].length() > 0) {

sb.append(Character.toUpperCase(words[0].charAt(0)) + words[0].subSequence(1, words[0].length()).toString().toLowerCase());

for (int i = 1; i < words.length; i++) {

sb.append(" ");

sb.append(Character.toUpperCase(words[i].charAt(0)) + words[i].subSequence(1, words[i].length()).toString().toLowerCase());

}

}

return sb.toString();

}

你也可以试试这个:

String s1 = br.readLine();

char[] chars = s1.toCharArray();

chars[0] = Character.toUpperCase(chars[0]);

s1= new String(chars);

System.out.println(s1);

这比使用子字符串更好(优化)。 (但不要担心小字符串)

这会奏效

char[] array = value.toCharArray();

array[0] = Character.toUpperCase(array[0]);

String result = new String(array);

看看ACL WordUtils。

WordUtils.capitalize(“你的字符串”)==“你的字符串”

如何在字符串中的每个首字母大写?

public static String capitalizer(final String texto) {

// split words

String[] palavras = texto.split(" ");

StringBuilder sb = new StringBuilder();

// list of word exceptions

List excessoes = new ArrayList(Arrays.asList("de", "da", "das", "do", "dos", "na", "nas", "no", "nos", "a", "e", "o", "em", "com"));

for (String palavra : palavras) {

if (excessoes.contains(palavra.toLowerCase()))

sb.append(palavra.toLowerCase()).append(" ");

else

sb.append(Character.toUpperCase(palavra.charAt(0))).append(palavra.substring(1).toLowerCase()).append(" ");

}

return sb.toString().trim();

}

Use this utility method to get all first letter in capital.

String captializeAllFirstLetter(String name)

{

char[] array = name.toCharArray();

array[0] = Character.toUpperCase(array[0]);

for (int i = 1; i < array.length; i++) {

if (Character.isWhitespace(array[i - 1])) {

array[i] = Character.toUpperCase(array[i]);

}

}

return new String(array);

}

您可以使用以下代码:

public static void main(String[] args) {

capitalizeFirstLetter("java");

capitalizeFirstLetter("java developer");

}

public static void capitalizeFirstLetter(String text) {

StringBuilder str = new StringBuilder();

String[] tokens = text.split("\s");// Can be space,comma or hyphen

for (String token : tokens) {

str.append(Character.toUpperCase(token.charAt(0))).append(token.substring(1)).append(" ");

}

str.toString().trim(); // Trim trailing space

System.out.println(str);

}

许多答案都非常有用,所以我使用它们来创建一个方法来将任何字符串转换为标题(第一个字符大写):

static String toTitle (String s) {

String s1 = s.substring(0,1).toUpperCase();

String sTitle = s1 + s.substring(1);

return sTitle;

}

您可以使用以下代码:

public static String capitalizeString(String string) {

if (string == null || string.trim().isEmpty()) {

return string;

}

char c[] = string.trim().toLowerCase().toCharArray();

c[0] = Character.toUpperCase(c[0]);

return new String(c);

}

使用JUnit进行示例测试:

@Test

public void capitalizeStringUpperCaseTest() {

String string = "HELLO WORLD ";

string = capitalizeString(string);

assertThat(string, is("Hello world"));

}

@Test

public void capitalizeStringLowerCaseTest() {

String string = "hello world ";

string = capitalizeString(string);

assertThat(string, is("Hello world"));

}

System.out.println(Character.toString(A.charAt(0)).toUpperCase()+A.substring(1));

P.S = a是一个字符串。

要将字符串中每个单词的第一个字符大写,

首先你需要得到该字符串的每个单词&amp;对于这个拆分字符串,其中任何空格都使用如下所示的split方法,并将每个单词存储在数组中。

然后创建一个空字符串。之后通过使用substring()方法获取第一个字符&amp;相应单词的剩余字符,并将它们存储在两个不同的变量中。

然后使用toUpperCase()方法将第一个字符大写,并将下面的重新映射字符添加到该空字符串中。

public class Test {

public static void main(String[] args)

{

String str= "my name is khan"; // string

String words[]=str.split("\s"); // split each words of above string

String capitalizedWord = ""; // create an empty string

for(String w:words)

{

String first = w.substring(0,1); // get first character of each word

String f_after = w.substring(1); // get remaining character of corresponding word

capitalizedWord += first.toUpperCase() + f_after+ " "; // capitalize first character and add the remaining to the empty string and continue

}

System.out.println(capitalizedWord); // print the result

}

}

我发布的代码将删除下划线(_)符号和String中的额外空格,并且它将大写字符串中每个新单词的第一个字母

private String capitalize(String txt){

List finalTxt=new ArrayList<>();

if(txt.contains("_")){

txt=txt.replace("_"," ");

}

if(txt.contains(" ") && txt.length()>1){

String[] tSS=txt.split(" ");

for(String tSSV:tSS){ finalTxt.add(capitalize(tSSV)); }

}

if(finalTxt.size()>0){

txt="";

for(String s:finalTxt){ txt+=s+" "; }

}

if(txt.endsWith(" ") && txt.length()>1){

txt=txt.substring(0, (txt.length()-1));

return txt;

}

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

return txt;

}

其中一个答案是95%正确,但它在我的unitTest失败了@Ameen Maheen的解决方案几近完美。除了在输入转换为String数组之前,您必须修剪输入。所以完美的一个:

private String convertStringToName(String name) {

name = name.trim();

String[] words = name.split(" ");

StringBuilder sb = new StringBuilder();

if (words[0].length() > 0) {

sb.append(Character.toUpperCase(words[0].charAt(0)) + words[0].subSequence(1, words[0].length()).toString().toLowerCase());

for (int i = 1; i < words.length; i++) {

sb.append(" ");

sb.append(Character.toUpperCase(words[i].charAt(0)) + words[i].subSequence(1, words[i].length()).toString().toLowerCase());

}

}

return sb.toString();

}

以下示例还会在特殊字符(例如[/ - ])之后对单词进行大写

public static String capitalize(String text) {

char[] stringArray = text.trim().toCharArray();

boolean wordStarted = false;

for( int i = 0; i < stringArray.length; i++) {

char ch = stringArray[i];

if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch == ''') {

if( !wordStarted ) {

stringArray[i] = Character.toUpperCase(stringArray[i]);

wordStarted = true;

}

} else {

wordStarted = false;

}

}

return new String(stringArray);

}

Example:

capitalize("that's a beautiful/wonderful life we have.We really-do")

Output:

That's A Beautiful/Wonderful Life We Have.We Really-Do

谢谢我已经阅读了一些评论,我带来了以下内容

public static void main(String args[])

{

String myName = "nasser";

String newName = myName.toUpperCase().charAt(0) + myName.substring(1);

System.out.println(newName );

}

我希望它有所帮助

祝好运

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

尧灵ing

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值