我使用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()
要将字符串中每个单词的第一个字符大写,
首先,你需要获得该字符串的每个单词&对于这个分裂字符串,其中任何空间都存在,使用split方法如下所示,并将每个单词存储在一个数组中。
然后创建一个空字符串。之后,使用substring()方法获取对应单词的第一个字符和剩余字符,并将它们存储在两个不同的变量中。
然后使用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
}
}
你要做的可能是:
s1 = name.substring(0, 1).toUpperCase() + name.substring(1);
(将第一个字符转换为大写,并添加原始字符串的其余部分)
此外,您创建了一个输入流读取器,但从不读取任何行。因此name将始终为空。
这应该可以工作:
BufferedReader br = new InputstreamReader(System.in);
String name = br.readLine();
String s1 = name.substring(0, 1).toUpperCase() + name.substring(1);