我正在使用Java从用户那里获得String
输入。我试图使这个输入的第一个字母大写。
我试过了:
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()
答案 0 :(得分:309)
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);
}
答案 1 :(得分:170)
答案 2 :(得分:65)
String name = "stackoverflow";
name = name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase();
name
的值为"Stackoverflow"
答案 3 :(得分:35)
第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
也包含在此库中,但已弃用。请不要使用它。
答案 4 :(得分:20)
你想做的可能就是:
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);
答案 5 :(得分:14)
答案 6 :(得分:11)
以下解决方案将有效。
String A = "stackOverflow";
String ACaps = A.toUpperCase().charAt(0)+A.substring(1,A.length());
//Will print StackOverflow
您不能在原始字符上使用toUpperCase(),但是您可以先将整个String设置为大写,然后取出第一个字符,然后附加到子字符串,如上所示。
答案 7 :(得分:10)
import static org.springframework.util.StringUtils.capitalize;
...
return capitalize(name);
注意::如果您已经具有Apache Common Lang依赖项,请考虑使用其StringUtils.capitalize作为其他答案。
答案 8 :(得分:8)
答案 9 :(得分:6)
对于Java用户:
只是一种用于大写每个字符串的辅助方法。
public static String capitalize(String str)
{
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
此后,只需致电str = capitalize(str)
对于Kotlin用户,只需致电:
str.capitalize()
答案 10 :(得分:5)
CREATE FUNCTION stergereStudenti () RETURNS trigger AS $$
BEGIN
DELETE FROM persoane WHERE idpersoana = OLD.idpersoana;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trgStergereStudenti BEFORE DELETE ON TABLE studenti
FOR EACH ROW EXECUTE stergereStudenti();
答案 11 :(得分:5)
它将工作101%
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);
}
}
答案 12 :(得分:5)
最短:
String message = "my message";
message = Character.toUpperCase(message.charAt(0)) + message.substring(1);
System.out.println(message) // Will output: My message
为我工作。
答案 13 :(得分:5)
WordUtils.capitalizeFully()怎么办?
recyclerViewAdapterTwo = new RecyclerViewAdapterTwo(ActivityTwo.this, trackList, categoriesList, new MusicTracksRecyclerViewAdapterTwo.ViewHolderOnClickHandler() {
@Override
public void onClick(int id, MusicTracksRecyclerViewAdapterTwo.VHItem vh) {
EventBus.getDefault().post(new PostSongListChangeToService(songDataList, position));
}
});
答案 14 :(得分:5)
将字符串设置为小写,然后将第一个字母设置为大写,如下所示:
userName = userName.toLowerCase();
然后将第一个字母大写:
userName = userName.substring(0, 1).toUpperCase() + userName.substring(1).toLowerCase();
substring只是获得一个更大的字符串,然后我们将它们组合在一起。
答案 15 :(得分:4)
您可以使用substring()
执行此操作。
但有两种不同的情况:
案例1
如果您正在大写的String
是人类可读的,那么您还应该指定默认的区域设置:
String firstLetterCapitalized =
myString.substring(0, 1).toUpperCase(Locale.getDefault()) + myString.substring(1);
案例2
如果您正在大写的String
是机器可读的,请避免使用Locale.getDefault()
,因为返回的字符串在不同区域之间会不一致,并且在这种情况下始终指定相同的区域设置(例如,toUpperCase(Locale.ENGLISH)
)。这将确保您用于内部处理的字符串是一致的,这将帮助您避免难以发现的错误。
注意:您不必为Locale.getDefault()
指定toLowerCase()
,因为这是自动完成的。
答案 16 :(得分:4)
在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));
答案 17 :(得分:3)
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);
}
答案 18 :(得分:3)
尝试这个
这种方法的作用是,考虑单词&#34; hello world&#34;这个方法把它变成了#Hello; Hello World&#34;大写每个单词的开头。
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();
}
答案 19 :(得分:3)
您可以使用以下代码:
WaitForSingleObject
答案 20 :(得分:3)
这只是为了告诉你,你并没有错。
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()
来完成。 ;)
答案 21 :(得分:2)
现有答案都是
char
是一个单独的字符(代码点),而它是一个UTF-16单词,可以是代理对的一半,或者让我们看一下surrogate characters(每个这样的字符都包含两个UTF-16单词— Java char
s),并且可以有大写和小写变体:
IntStream.rangeClosed(0x01_0000, 0x10_FFFF)
.filter(ch -> Character.toUpperCase(ch) != Character.toLowerCase(ch))
.forEach(ch -> System.out.print(new String(new int[] { ch }, 0, 1)));
对于您来说,其中许多可能看起来像“豆腐”(□),但它们大多数都是稀有脚本的有效字符,并且某些字体也支持它们。
例如,让我们看一下Deseret小字母Long I(?),U + 10428,"\uD801\uDC28"
:
System.out.println("U+" + Integer.toHexString(
"\uD801\uDC28".codePointAt(0)
)); // U+10428
System.out.println("U+" + Integer.toHexString(
Character.toTitleCase("\uD801\uDC28".codePointAt(0))
)); // U+10400 — ok! capitalized character is another code point
System.out.println("U+" + Integer.toHexString(new String(new char[] {
Character.toTitleCase("\uD801\uDC28".charAt(0)), "\uD801\uDC28".charAt(1)
}).codePointAt(0))); // U+10428 — oops! — cannot capitalize an unpaired surrogate
因此,即使在char
不能的情况下,代码点也可以大写。
考虑到这一点,让我们编写一个正确的(和Java 1.5兼容!)大写字母:
@Contract("null -> null")
public static CharSequence capitalize(CharSequence input) {
int length;
if (input == null || (length = input.length()) == 0) return input;
return new StringBuilder(length)
.appendCodePoint(Character.toTitleCase(Character.codePointAt(input, 0)))
.append(input, Character.offsetByCodePoints(input, 0, 1), length);
}
并检查其是否有效:
public static void main(String[] args) {
// ASCII
System.out.println(capitalize("whatever")); // w -> W
// UTF-16, no surrogate
System.out.println(capitalize("что-то")); // ч -> Ч
// UTF-16 with surrogate pairs
System.out.println(capitalize("\uD801\uDC28")); // ? -> ?
}
另请参阅:
答案 22 :(得分:2)
这将有效
char[] array = value.toCharArray();
array[0] = Character.toUpperCase(array[0]);
String result = new String(array);
答案 23 :(得分:2)
给出的答案仅用于大写一个单词的第一个字母。使用以下代码将整个字符串大写。
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());
}
输出:
This Is A Random String
答案 24 :(得分:2)
查看ACL WordUtils。
WordUtils.capitalize(&#34;你的字符串&#34;)==&#34;你的字符串&#34;
答案 25 :(得分:2)
public static String capitalizer(final String texto) {
// split words
String[] palavras = texto.split(" ");
StringBuilder sb = new StringBuilder();
// list of word exceptions
List<String> excessoes = new ArrayList<String>(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();
}
答案 26 :(得分:2)
你也可以试试这个:
String s1 = br.readLine();
char[] chars = s1.toCharArray();
chars[0] = Character.toUpperCase(chars[0]);
s1= new String(chars);
System.out.println(s1);
这比使用子字符串更好(优化)。 (但不要担心小字符串)
答案 27 :(得分:2)
这是我关于该主题的详细文章,其中包含所有可能的选项Capitalize First Letter of String in Android
Java中首字母大写的方法
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;
}
在KOTLIN中大写字符串首字母的方法
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
}
答案 28 :(得分:2)
要获取首字母大写且其他要小的,您可以使用下面的代码。我已经通过子字符串功能完成了。
String currentGender="mAlE";
currentGender=currentGender.substring(0,1).toUpperCase()+currentGender.substring(1).toLowerCase();
在这里,substring(0,1).toUpperCase()将首字母大写,substring(1).toLowercase()将所有剩余字母均转换为小写。
输出:
男性
答案 29 :(得分:1)
要将字符串中每个单词的第一个字符大写,
首先你需要获得该字符串的每个单词&amp;对于这个拆分字符串,其中任何空格都使用如下所示的split方法,并将每个单词存储在数组中。 然后创建一个空字符串。之后通过使用substring()方法获取第一个字符&amp;相应单词的剩余字符,并将它们存储在两个不同的变量中。
然后使用toUpperCase()方法将第一个字符大写,并将下面的剩余字符添加到该空字符串中。
hidden
答案 30 :(得分:1)
简单的解决方案!不需要任何外部库,它可以处理空字符串或一个字母字符串。
private String capitalizeFirstLetter(@NonNull String str){
return str.length() == 0 ? str
: str.length() == 1 ? str.toUpperCase()
: str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase();
}
答案 31 :(得分:1)
答案之一是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();
}
答案 32 :(得分:1)
我发布的代码将从String中删除下划线(_)符号和多余的空格,并且还将大写String中每个新单词的首字母
private String capitalize(String txt){
List<String> 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;
}
答案 33 :(得分:1)
为了将输入字符串的首字母大写,我们先在空格上分割字符串,然后使用map
提供的集合转换程序<T, R> Array<out T>.map(
transform: (T) -> R
): List<R>
要转换,每个拆分的字符串先小写,然后大写第一个字母。此映射转换将返回一个需要使用 joinToString 函数转换为字符串的列表。
<块引用>科特林
fun main() {
/*
* Program that first convert all uper case into lower case then
* convert fist letter into uppercase
*/
val str = "aLi AzAZ alam"
val calStr = str.split(" ").map{it.toLowerCase().capitalize()}
println(calStr.joinToString(separator = " "))
}
<块引用>
输出
答案 34 :(得分:1)
许多答案都非常有用,所以我用它们来创建一个方法来将任何字符串转换为标题(第一个字符大写):
static String toTitle (String s) {
String s1 = s.substring(0,1).toUpperCase();
String sTitle = s1 + s.substring(1);
return sTitle;
}
答案 35 :(得分:1)
System.out.println(Character.toString(A.charAt(0)).toUpperCase()+A.substring(1));
P.S = a是一个字符串。
答案 36 :(得分:1)
您可以使用以下代码:
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"));
}
答案 37 :(得分:0)
Ameen Mahheen的答案很好但是如果我们有一些双倍空间的字符串,比如&#34; hello world&#34;然后sb.append获得IndexOutOfBounds Exception。正确的做法就是在这一行之前进行测试:
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(" ");
if (words[i].length() > 0) sb.append(Character.toUpperCase(words[i].charAt(0)) + words[i].subSequence(1, words[i].length()).toString().toLowerCase());
}
}
return sb.toString();
}
答案 38 :(得分:0)
你可以试试这个
/**
* capitilizeFirst(null) -> ""
* capitilizeFirst("") -> ""
* capitilizeFirst(" ") -> ""
* capitilizeFirst(" df") -> "Df"
* capitilizeFirst("AS") -> "As"
*
* @param str input string
* @return String with the first letter capitalized
*/
public String capitilizeFirst(String str)
{
// assumptions that input parameter is not null is legal, as we use this function in map chain
Function<String, String> capFirst = (String s) -> {
String result = ""; // <-- accumulator
try { result += s.substring(0, 1).toUpperCase(); }
catch (Throwable e) {}
try { result += s.substring(1).toLowerCase(); }
catch (Throwable e) {}
return result;
};
return Optional.ofNullable(str)
.map(String::trim)
.map(capFirst)
.orElse("");
}
答案 39 :(得分:0)
您可以使用Class WordUtils。
假设您的字符串是“当前地址”,然后使用
****强文 Wordutils.capitaliz(String); 输出:当前地址
参考:http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html
答案 40 :(得分:0)
class CapitalizeWords
{
public static void main(String[] args)
{
String input ="welcome to kashmiri geeks...";
System.out.println(input);
String[] str = input.split(" ");
for(int i=0; i< str.length; i++)
{
str[i] = (str[i]).substring(0,1).toUpperCase() + (str[i]).substring(1);
}
for(int i=0;i<str.length;i++)
{
System.out.print(str[i]+" ");
}
}
}
答案 41 :(得分:0)
当前答案不正确,或者使此简单任务过于复杂。经过研究后,我提出了two approaches:
1。字符串的substring()
方法
public static String capitalize(String str) {
if(str== null || str.isEmpty()) {
return str;
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
示例:
System.out.println(capitalize("java")); // Java
System.out.println(capitalize("beTa")); // BeTa
System.out.println(capitalize(null)); // null
2。 Apache Commons Lang
Apache Commons Lang库为此目的提供了StringUtils
类:
System.out.println(StringUtils.capitalize("apache commons")); // Apache commons
System.out.println(StringUtils.capitalize("heLLO")); // HeLLO
System.out.println(StringUtils.uncapitalize(null)); // null
请不要忘记将以下依赖项添加到您的pom.xml
文件中:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
答案 42 :(得分:0)
public void capitalizeFirstLetter(JTextField textField) {
try {
if (!textField.getText().isEmpty()) {
StringBuilder b = new StringBuilder(textField.getText());
int i = 0;
do {
b.replace(i, i + 1, b.substring(i, i + 1).toUpperCase());
i = b.indexOf(" ", i) + 1;
} while (i > 0 && i < b.length());
textField.setText(b.toString());
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE);
}
}
答案 43 :(得分:0)
import java.util.*;
public class Program
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String s1=sc.nextLine();
String[] s2=s1.split(" ");//***split text into words***
ArrayList<String> l = new ArrayList<String>();//***list***
for(String w: s2)
l.add(w.substring(0,1).toUpperCase()+w.substring(1));
//***converting 1st letter to capital and adding to list***
StringBuilder sb = new StringBuilder();//***i used StringBuilder to convert words to text***
for (String s : l)
{
sb.append(s);
sb.append(" ");
}
System.out.println(sb.toString());//***to print output***
}
}
我使用了split函数将字符串拆分为单词,然后再次使用list获得该单词的首字母大写,然后使用string builder来以字符串格式打印输出,其中带有空格
答案 44 :(得分:0)
如果输入为UpperCase,则使用以下命令:
str.substring(0,1).toUpperCase()+ str.substring(1).toLowerCase();
如果输入为LowerCase,则使用以下命令:
str.substring(0,1).toUpperCase()+ str.substring(1);
答案 45 :(得分:0)
使用替换方法。
String newWord = word.replace(String.valueOf(word.charAt(0)), String.valueOf(word.charAt(0)).toUpperCase());
答案 46 :(得分:0)
谢谢我已阅读了一些评论,并附带以下内容
public static void main(String args[])
{
String myName = "nasser";
String newName = myName.toUpperCase().charAt(0) + myName.substring(1);
System.out.println(newName );
}
我希望它有所帮助 祝你好运
答案 47 :(得分:0)
刚刚重写Jorgesys代码和添加了少量检查,因为很少与String长度相关的情况。在我的情况下,不要进行空参考检查。
public static String capitalizeFirstLetter(@NonNull String customText){
int count = customText.length();
if (count == 0) {
return customText;
}
if (count == 1) {
return customText.toUpperCase();
}
return customText.substring(0, 1).toUpperCase() + customText.substring(1).toLowerCase();
}
答案 48 :(得分:0)
此代码可大写文本中的每个单词!
public String capitalizeText(String name) {
String[] s = name.trim().toLowerCase().split("\\s+");
name = "";
for (String i : s){
if(i.equals("")) return name; // or return anything you want
name+= i.substring(0, 1).toUpperCase() + i.substring(1) + " "; // uppercase first char in words
}
return name.trim();
}
答案 49 :(得分:0)
再举一个例子,如何使用户输入的首字母大写:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String string = br.readLine();
// handle supplementary characters
IntStream.concat(
IntStream.of(string.codePointAt(0))
.map(Character::toUpperCase), string.codePoints().skip(1)
)
.forEach(cp -> System.out.print(Character.toChars(cp)));
答案 50 :(得分:0)
一种方法。
var accessResolver = AutofacHostFactory.Container.Resolve<IAccessResolver>();
此方法的缺点是,如果inputString很长,则将有三个具有这种长度的对象。和你一样
String input = "someТекст$T%$4čřЭ"; //Enter your text.
if (input == null || input.isEmpty()) {
return "";
}
char [] chars = input.toCharArray();
chars[0] = chars[0].toUpperCase();
String res = new String(chars);
return res;
甚至
String s1 = input.substring(1).toUpperCase();
String s2 = input.substring(1, lenght);
String res = s1 + s2;
答案 51 :(得分:0)
来自commons.lang.StringUtils的最佳答案是:
public static String capitalize(String str){
int strLen;
return str!= null&amp;&amp; (strLen = str.length())!= 0? (new StringBuffer(strLen))。append(Character.toTitleCase(str.charAt(0)))。append(str.substring(1))。toString():str;
}
我发现它很棒,因为它用StringBuffer包装了字符串。您可以按照自己的意愿操作StringBuffer,但使用相同的实例。
答案 52 :(得分:0)
String s = "first second third fourth";
int j = 0;
for (int i = 0; i < s.length(); i++) {
if ((s.substring(j, i).endsWith(" "))) {
String s2 = s.substring(j, i);
System.out.println(Character.toUpperCase(s.charAt(j))+s2.substring(1));
j = i;
}
}
System.out.println(Character.toUpperCase(s.charAt(j))+s.substring(j+1));
答案 53 :(得分:-1)
在这里搜索大写名字首字母的人..
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
答案 54 :(得分:-2)
试试这个,它对我有用。
public static String capitalizeName(String name) {
String fullName = "";
String names[] = name.split(" ");
for (String n: names) {
fullName = fullName + n.substring(0, 1).toUpperCase() + n.toLowerCase().substring(1, n.length()) + " ";
}
return fullName;
}