Java 如何仅修改字符串的第一个字母?

Java 如何仅修改字符串的第一个字母?,java,string,Java,String,我有一个字符串,读作你不能坐在+entity.getEntityType.toLowerCase+!;。它返回一个大写,这就是为什么我把它转换成小写 但是,我如何才能只得到第一个字母,并将其转换为大写字母 最好使用一行程序解决方案,但是乞丐不能选择。在java中,如果您对字符串进行任何操作,它将在内存中创建一个新字符串 以下是如何做到这一点: String output = input.substring(0, 1).toUpperCase() + input.substring(1); 您可

我有一个字符串,读作你不能坐在+entity.getEntityType.toLowerCase+!;。它返回一个大写,这就是为什么我把它转换成小写

但是,我如何才能只得到第一个字母,并将其转换为大写字母


最好使用一行程序解决方案,但是乞丐不能选择。

在java中,如果您对字符串进行任何操作,它将在内存中创建一个新字符串

以下是如何做到这一点:

String output = input.substring(0, 1).toUpperCase() + input.substring(1);

您可以使用以下内容:

String output = input.substring(0, 1).toUpperCase() + input.substring(1);
另一方面,看看番石榴图书馆也不错

String output = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, entity.getEntityType()));

仅在这种情况下,它会被过度使用,但它还有许多其他有用的实用程序,不仅用于字符串操作

更有效的方法是将第一个字符视为一个字符而不是一个字符串:


我首先想到的是这个

        int x = a.codePointAt(0)-32;

        a=a.replace(a.charAt(0), (char) x);

需要注意的一点是原始字符串没有被修改。将创建一个首字母大写的新字符串。@TheLostMind:这是正确的。我会在我的回答中添加这些信息。谢谢这是个陷阱。当第一个字符是数字或非英语语言的Unicode字符时会发生什么情况?我知道它只是包含字符的字符串。@tudoricc 7和ü也是字符,并且至少7将导致您的方法无意义,因为它没有大写字母,它将成为传输的结束字符。对你来说,这是可行的,但是汉字呢?汉字有大写字母吗?我不知道,但无论如何它们都会被转换成某种东西。贝加尔不能选择。在这里,专家们会无私地帮助别人。虽然提问者保留选择答案的权利,但他应该表现出一定的尊重。如果您想进行代码挑战,可以在中发布它们。但是你必须做得更好。@Krumia我是一个乞丐,因为我不能做java允许之外的方法。如果java不允许我像我所要求的那样做一行程序,那么我就没有这个能力。因此,从这个意义上说,我是一个乞丐。
        int x = a.codePointAt(0)-32;

        a=a.replace(a.charAt(0), (char) x);