使用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);
}
}
答案 0 :(得分:1)
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"));
}
}
<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();
}