java中如何实现string的第一个字母大写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何实现string的第一个字母大写相关的知识,希望对你有一定的参考价值。

以下是方法:

public static String do17(String str) 

     if(str!=null && str!="")         str  = str.substring(0,1).toUpperCase()+str.substring(1);          return str; 

一、电脑常见问题

主板不启动,开机无显示,有显卡报警声。

故障原因:一般是显卡松动或显卡损坏。    

处理办法:打开机箱,把显卡重新插好即可。要检查AGP插槽内是否有小异物,否则会使显卡不能插接到位;对于使用语音报警的主板,应仔细辨别语音提示的内容,再根据内容解决相应故障。     

如果以上办法处理后还报警,就可能是显卡的芯片坏了,更换或修理显卡。如果开机后听到"嘀"的一声自检通过,显示器正常但就是没有图像,把该显卡插在其他主板上,使用正常,那就是显卡与主板不兼容,应该更换显卡。  

参考技术A   public static String captureName(String name) 
        char[] cs=name.toCharArray();
        cs[0]-=32;
        return String.valueOf(cs);
        
    

参考技术B String s = "abcd";

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

  System.out.println(newStr);

参考技术C str = str.replace(str.substring(0, 1), str.substring(0, 1).toUpperCase());

用toUpperCase方法。

在java中使String首字母大写

【中文标题】在java中使String首字母大写【英文标题】:Make String first letter capital in java 【发布时间】:2013-06-06 05:52:57 【问题描述】:

到目前为止,我正在使用此代码将我的第一个字母设为大写字符串

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

这对我来说似乎很脏..有没有直接或优雅的方式..

【问题讨论】:

StringUtils.capitalize()?在 Java 中寻找优雅是……嗯,有更好的投资回报率。实用程序库的存在是有原因的。 您需要考虑语言环境吗?每个语言环境都有不同的更改字母大小写的规则。 @erickson 不需要。英语对我来说就足够了。 同***.com/questions/3904579/…(虽然这个用词更清楚)。 【参考方案1】:

这个怎么样:

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

如果不使用外部库,我想不出任何更清洁的东西,但这绝对比你现在拥有的要好。

【讨论】:

我认为 Marco 的意思是,"" 或 null 将失败; StringUtils.capitalize 不会失败。 @JoopEggen 这与 OP 的原始代码具有完全相同的行为,而 StringUtils.capitalize 没有。 我什至不明白为什么这会被否决,在我看来这是最好的方法,除非我错过了什么 StringUtils.capitalize( "fred from jupiter" ); 产生"Fred from jupiter"。这就是你所需要的!【参考方案2】:

你应该看看Apache Commons Lang lib 中的StringUtils 类 - 它有方法.capitalize()

来自库的描述:

大写一个字符串,将第一个字母更改为标题大小写 Character.toTitleCase(char)。其他字母没有变化。

【讨论】:

请注意,如果您只想将第一个字母大写(例如,用于格式化名称),如果您怀疑字符串中可能已经有大写字母,则可能需要在运行大写之前将整个字符串小写.来自 JavaDoc: StringUtils.capitalize("cAt") = "CAt" Capitalize 会将每个单词的首字母大写,而不仅仅是第一个 StringUtils.capitalize( "fred from jupiter" ); 产生"Fred from jupiter"。只有来自 String-object 的 first 字符会被大写。【参考方案3】:
String out = Character.toUpperCase(inText.charAt(0)) + inText.substring(1).toLowerCase();

【讨论】:

【参考方案4】:
public static void main(String[] args) 
    String str = null;
    String outStr = null;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a String: ");
    str = sc.nextLine();
    //c= Character.toUpperCase(str.charAt(0));

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

        if(str.charAt(i)==' ')

            outStr= outStr.substring(0,i+1)+str.substring(i+1,i+2).toUpperCase()+str.substring(i+2);

        else if(i==0)

            outStr=str.substring(0,1).toUpperCase()+str.substring(1);

        
    
    System.out.println("STRING::"+outStr);

【讨论】:

如果我输入像_123 这样的字符串(以空格开头),它会抛出NullPointerException。与其他人相比,您的答案似乎也有点复杂。 好吧,不仅如此,如果你在最后添加一个空格,我的程序也应该抛出 NullPointerException。我没有做过这些检查,如果你愿意,你可以使用正则表达式......我只是给出了如何实现的框架。【参考方案5】:

假设您可以使用 Java 8,这是没有人要求的功能方式...

import java.util.Optional;
import java.util.stream.IntStream;

public class StringHelper 
    public static String capitalize(String source) 
        return Optional.ofNullable(source)
            .map(str -> IntStream.concat(
                str.codePoints().limit(1).map(Character::toUpperCase),
                str.codePoints().skip(1)))
            .map(stream -> stream.toArray())
            .map(arr -> new String(arr, 0, arr.length))
            .orElse(null);
    

它的优雅之处在于它无需任何条件语句即可处理空字符串和空字符串的情况。

【讨论】:

StringUtils.capitalize( "fred from jupiter" ); 产生"Fred from jupiter"。它的源代码更少......:D【参考方案6】:
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)

P.S = a 是字符串。

【讨论】:

【参考方案7】:

这里,hold my beer

String foo = "suresh";
String bar = foo.toUpperCase();
if(bar.charAt[0] == 'S')
   throw new SuccessException("bar contains 'SURESH' and has the first letter capital").

【讨论】:

【参考方案8】:
class strDemo3

    public static void main(String args[])
    
        String s1=new String(" the ghost of the arabean sea");
        char c1[]=new char[30];       
        int c2[]=new int[30];
        s1.getChars(0,28,c1,0);
        for(int i=0;i<s1.length();i++)
        
           System.out.print(c1[i]);
        
        for(int i=1;i<s1.length();i++)
        
           c2[i]=c1[i];
           if(c1[i-1]==' ')
           
               c2[i]=c2[i]-32;
           
           c1[i]=(char)c2[i];          
        
        for(int i=0;i<s1.length();i++)
        
           System.out.print(c1[i]);
                    
       

【讨论】:

请不要只发布 OP 可能无法理解的代码。一步一步解释你的答案并给出建议。 我的代码现在看起来更漂亮了 :) 不过感谢您的回答。

以上是关于java中如何实现string的第一个字母大写的主要内容,如果未能解决你的问题,请参考以下文章

java 如何将一个字符串数组每行的第一个英文字母变成大写

如何使用Java将字符串中的第一个字母大写?

如何将字符串的第一个字母大写

Java如何将每个单词的第一个字符转为大写

Java如何将每个单词的第一个字符转为大写?

Python如何将字符串的第n个字母大写