Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使字符串首字母大写_Java_String_Capitalize - Fatal编程技术网

在java中使字符串首字母大写

在java中使字符串首字母大写,java,string,capitalize,Java,String,Capitalize,到目前为止,我正在使用此代码以字符串大写形式生成我的第一个字母 String output = input.substring(0, 1).toUpperCase() + input.substring(1); 这对我来说似乎很肮脏。有什么直接或优雅的方法吗?你应该看看lib中的类-它有方法 库中的说明: 根据将第一个字母更改为标题大小写的字符串大写 字符。toTitleCase(字符)。没有其他字母被更改 这个怎么样: String output = Character.toUpperCas

到目前为止,我正在使用此代码以字符串大写形式生成我的第一个字母

String output = input.substring(0, 1).toUpperCase() + input.substring(1);
这对我来说似乎很肮脏。有什么直接或优雅的方法吗?

你应该看看lib中的类-它有方法

库中的说明:

根据将第一个字母更改为标题大小写的字符串大写 字符。toTitleCase(字符)。没有其他字母被更改

这个怎么样:

String output = Character.toUpperCase(input.charAt(0)) + input.substring(1);
如果不使用外部库,我想不出任何更干净的东西,但这肯定比您目前拥有的要好。

publicstaticvoidmain(String[]args){
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);
}
字符串str=null; 字符串outStr=null; 扫描仪sc=新的扫描仪(System.in); System.out.println(“输入字符串:”); str=sc.nextLine(); //c=字符。toUpperCase(str.charAt(0)); 对于(int i=0;i<(str.length());i++){ 如果(str.charAt(i)=''){ outStr=outStr.substring(0,i+1)+str.substring(i+1,i+2).toUpperCase()+str.substring(i+2); }else如果(i==0){ outStr=str.substring(0,1).toUpperCase()+str.substring(1); } } System.out.println(“字符串::”+outsr); }
等级标准3
{
公共静态void main(字符串参数[])
{
字符串s1=新字符串(“阿拉伯豆海的幽灵”);
字符c1[]=新字符[30];
int c2[]=新int[30];
s1.getChars(0,28,c1,0);

对于(inti=0;i假设您可以使用Java8,下面是没有人要求的函数方式

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);
    }
}
它的优雅之处在于它处理空字符串和空字符串,而不使用任何条件语句

Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)
p.S=a是字符串。

这里


在java中寻找优雅是……嗯,有更好的ROI。实用库存在的原因。你需要考虑区域吗?每个区域都有不同的字母改变的规则。埃里克森不需要。英语对我来说足够了。(虽然这个词更清楚)。我认为马珂的意思是,“或者null将失败;StringUtils.capitalize将不会失败。@JoopEggen这与OP的原始代码行为完全相同,而
StringUtils.capitalize
不会。我甚至不明白为什么会被否决,在我看来这是最好的方法,除非我遗漏了什么
StringUtils.capitalize(“fred from jupiter”);
生成
“fred from jupiter”
。这就是您所需要的!如果我输入一个字符串,如
\u 123
(以空格开头),它会抛出一个
NullPointerException
。与其他答案相比,您的答案似乎也有点复杂。不仅如此,如果您在末尾添加一个空格,我的程序也会抛出NullPointerException。我还没有做过这些检查,如果您愿意,可以使用regex…我只是给出了如何实现它的框架。请不要只发布可能让OP无法理解的代码。一步一步地解释你的答案并给出建议。我的代码现在看起来更漂亮:)谢谢你的回答。请注意,如果你只想大写第一个字母(比如,格式化名称),如果怀疑字符串中可能已经有大写字母,则可能需要在运行capitalize之前将整个字符串小写。从JavaDoc:StringUtils.capitalize(“cAt”)=“cAt”capitalize将每个单词的第一个字母大写,而不仅仅是第一个
StringUtils.capitalize(“fred From jupiter”);
生成
”Fred from jupiter“
。只有字符串对象的第一个字符将大写。
StringUtils.capitalize(“Fred from jupiter”);
生成
“Fred from jupiter”
。它的源代码更少…:D
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);
    }
}
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)
String foo = "suresh";
String bar = foo.toUpperCase();
if(bar.charAt[0] == 'S'){
   throw new SuccessException("bar contains 'SURESH' and has the first letter capital").
}