如何在Java中大写字符串的第一个字母?
我使用Java从用户那里获取如何在Java中大写字符串的第一个字母?,java,string,capitalize,Java,String,Capitalize,我使用Java从用户那里获取字符串输入。我正在尝试将此输入的第一个字母大写 我试过这个: String name; BufferedReader br = new InputStreamReader(System.in); String s1 = name.charAt(0).toUppercase()); System.out.println(s1 + name.substring(1)); 这导致了以下编译器错误: 类型不匹配:无法从InputStreamReader转换为Buf
字符串输入。我正在尝试将此输入的第一个字母大写
我试过这个:
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()
以你的例子:
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);
}
from。from。使用。您想要做的可能是:
s1 = name.substring(0, 1).toUpperCase() + name.substring(1);
(将第一个字符转换为大写,并添加原始字符串的其余部分)
另外,您创建了一个输入流读取器,但从未读取任何行。因此,name
将始终为null
这应该起作用:
BufferedReader br = new InputstreamReader(System.in);
String name = br.readLine();
String s1 = name.substring(0, 1).toUpperCase() + name.substring(1);
您也可以尝试以下方法:
String s1 = br.readLine();
char[] chars = s1.toCharArray();
chars[0] = Character.toUpperCase(chars[0]);
s1= new String(chars);
System.out.println(s1);
这比使用子字符串更好(优化)。(但不用担心小字符串)这只是为了告诉你,你没有错
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()
来完成 可以使用substring()
执行此操作
但有两种不同的情况:
案例1
如果要大写的字符串
是可读的,则还应指定默认区域设置:
String firstLetterCapitalized =
myString.substring(0, 1).toUpperCase(Locale.getDefault()) + myString.substring(1);
案例2
如果大写的字符串是机器可读的,请避免使用Locale.getDefault()
,因为返回的字符串在不同的区域不一致,在这种情况下,请始终指定相同的区域设置(例如,toUpperCase(Locale.ENGLISH)
)。这将确保用于内部处理的字符串是一致的,这将帮助您避免难以发现的bug
注意:您不必为toLowerCase()
指定Locale.getDefault()
,因为这是自动完成的。将字符串首字母大写的较短/较快版本代码是:
name
的值是“Stackoverflow”
试试这个
这个方法是这样的,考虑“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[]words=word.split(“”);
StringBuilder sb=新的StringBuilder();
if(字[0].length()>0){
sb.append(Character.toUpperCase(words[0].charAt(0))+words[0].子序列(1,words[0].length()).toString().toLowerCase());
for(int i=1;i
这将起作用
char[] array = value.toCharArray();
array[0] = Character.toUpperCase(array[0]);
String result = new String(array);
在Android Studio中
将此依赖项添加到您的build.gradle(模块:app)
现在你可以使用
String string = "STRING WITH ALL CAPPS AND SPACES";
string = string.toLowerCase(); // Make all lowercase if you have caps
someTextView.setText(WordUtils.capitalize(string));
请查看ACL WordUtils
WordUtils.capitalize(“您的字符串”)=“您的字符串”
您可以使用以下代码:
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);
}
将字符串设置为小写,然后将第一个字母设置为大写,如下所示:
userName = userName.toLowerCase();
然后将第一个字母大写:
userName = userName.substring(0, 1).toUpperCase() + userName.substring(1).toLowerCase();
子字符串只是得到一个较大字符串的一部分,然后我们将它们重新组合在一起。怎么样
还有:
String message = "my message";
message = Character.toUpperCase(message.charAt(0)) + message.substring(1);
System.out.println(message) // Will output: My message
为我工作。使用Apache的公共库。把你的大脑从这些东西中解放出来,避免空指针和索引越界异常
String str1 = "hello";
str1.substring(0, 1).toUpperCase()+str1.substring(1);
第1步:
str.capitalize()
通过将其放入build.gradle
dependencies,导入apache的公共语言库
compile 'org.apache.commons:commons-lang3:3.6'
第二步:
str.capitalize()
如果您确定字符串都是小写的,或者只需要初始化第一个字母,那么直接调用
StringUtils.capitalize(yourString);
如果要确保只有第一个字母是大写的,就像对enum
执行此操作一样,请首先调用toLowerCase()
,请记住,如果输入字符串为null,它将抛出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'"
注意:
str.capitalize()
WordUtils
也包含在此库中,但已弃用。请不要使用它。下面的解决方案会起作用
String A = "stackOverflow";
String ACaps = A.toUpperCase().charAt(0)+A.substring(1,A.length());
//Will print StackOverflow
不能对原语字符使用toUpperCase(),但可以先将整个字符串变为大写,然后取第一个字符,然后追加到子字符串,如上图所示。使用commons.lang.StringUtils
最佳答案是:
public static String capitalize(String str) {
int strLen;
return str != null && (strLen = str.length()) != 0 ? (new StringBuffer(strLen)).append(Character.toTitleCase(str.charAt(0))).append(str.substring(1)).toString() : str;
}
我发现它非常棒,因为它用StringBuffer包装字符串。您可以根据自己的意愿操作StringBuffer,尽管使用的是同一个实例。使用此实用程序方法获取所有大写字母
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);
}
String capitalialfirstletter(字符串名称)
{
char[]数组=name.toCharArray();
数组[0]=字符.toUpperCase(数组[0]);
for(int i=1;i
Java:
str.capitalize()
这是一个简单的助手方法,用于将每个字符串大写
public static String capitalize(String str)
{
if(str == null) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
之后,只需调用str=capitalize(str)
Kotlin:
str.capitalize()
给出的答案仅用于大写一个单词的第一个字母。使用以下代码将整个字符串大写
public static void main(String[] args) {
String str = "this is a random string";
StringBuilder capitalizedString = new StringBuilder();
String[] splited = str.trim().split("\\s+");
for (String string : splited) {
String s1 = string.substring(0, 1).toUpperCase();
String nameCapitalized = s1 + string.substring(1);
capitalizedString.append(nameCapitalized);
capitalizedString.append(" ");
}
System.out.println(capitalizedString.toString().trim());
}
输出:
这是一个随机字符串
如果输入为大写,则使用以下命令:
str.capitalize()
str.substring(0,1).toUpperCase()+str.substring(1.toLowerCase()
如果输入为小写,则使用以下命令:
str.capitalize()
str.substring(0,1).toUpperCase()+str.substring(1) 目前的答案要么不正确,要么使这项简单的任务过于复杂。船尾
public class UpperCase {
public static void main(String [] args) {
String name;
System.out.print("INPUT: ");
Scanner scan = new Scanner(System.in);
name = scan.next();
String upperCase = name.substring(0, 1).toUpperCase() + name.substring(1);
System.out.println("OUTPUT: " + upperCase);
}
}
public static String capitalizeString(String str) {
String retStr = str;
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1);
}catch (Exception e){}
return retStr;
}
fun capitalizeString(str: String): String {
var retStr = str
try { // We can face index out of bound exception if the string is null
retStr = str.substring(0, 1).toUpperCase() + str.substring(1)
} catch (e: Exception) {
}
return retStr
}