如何将单词更改为大写

时间:2017-10-08 11:48:58

标签: java

使用for循环和if else语句,我已经将单词的首字符更改为大写。

我想知道如何将值存储到x变量中,以便它可以返回main并将其打印出来。

输出假设是“辛普森系列”而不是“辛普森系列”。 enter image description here

谢谢。

package tt5;

public class StringCharacter {

public static String capitalize(String x){

//check character length
for(int i=0; i<x.length(); i++){
   Character temp = x.charAt(i);
   boolean b1 = Character.isLetter(temp);

//change words to uppercase if condition matched
    if(i==0){
        String y = temp.toString();
        String a = y.toUpperCase();
    }
    else if(b1==false){
            temp = x.charAt(i+1);
            String y = temp.toString();
            String a = " " + y.toUpperCase();
            i++;
    }
    else{
            String a = temp.toString();
    }
}

//return result
String a = "";
x = x.concat(a);
return x;
}

//input words and print the result
public static void main(String[] args){
    String str = "the simpson series";
    String total = capitalize(str);
    System.out.println(total);
}

}

3 个答案:

答案 0 :(得分:1)

解决方案1:StringBuilder

import java.util.Arrays;
import java.util.stream.Collectors;

public class Capitalize {
    public static String stream(String text) {
        return Arrays.stream(text.split("\\s+"))
            .map(s -> s.substring(0,1).toUpperCase() + s.substring(1))
            .collect(Collectors.joining(" "));
    }

    public static void main(String...string) {
        System.out.println(stream("the simpson series"));
    }
}

解决方案2:流

<body ng-app="ContractT" ng-controller="crudController">
<br /><br />

(虽然从技术上讲,它会将多个空格划分到一个空格中)

答案 1 :(得分:1)

import java.util.*;
import java.lang.*;
import java.io.*;

public class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {

    String s ="the anupam singh";
    s=test(s);
    System.out.println(s);

    }


    public static String test(String s)
    {
        char c;

        for(int i=0;i<s.length();i++)
        {
          c=s.charAt(i);

          if(i==0)
          {
            c=Character.toUpperCase(c);
            s=c+s.substring(1,s.length());
          }
          else
          {
            if(c==' ')
            {
                c=s.charAt(i+1);
                c=Character.toUpperCase(c);
                s=s.substring(0,i+1)+c+s.substring(i+2,s.length());
            }

          }

        }

        return s;


    }


}

我希望您尝试将每个单词的初始字符更改为大写字符。我已经为此编写了代码。它正在发挥作用。

提出将其存储到x变量的问题。 make string x external,然后你可以从两个方法访问它,即main和capitalize。

答案 2 :(得分:0)

split String给定行的每个单词\\s+(空格),然后将每个单词的第一个字符大写,并使用StrinBuilder附加它们

public static String toTitleCase(String givenString) {
    String[] arr = givenString.split("\\s+");
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < arr.length; i++) {
        sb.append(Character.toUpperCase(arr[i].charAt(0)))
            .append(arr[i].substring(1)).append(" ");
    }          
    return sb.toString().trim();
}