[英]How to Capitalize the first letter of each String seperated by whitespace in java
好的,我已經編寫並解決了代碼。 我的問題是,當我在同一行上輸入兩個單詞時,得到的是我輸入的內容以及所需的解決方案。
我想要這個輸出。。。
Happy Thursday
下面是我的代碼:
import java.util.Scanner;
public class LetterCapitalize {
String CapitalizeLetter(String str) {
String[] words = str.split(" ");
String string = " ";
for(int i = 0; i < words.length; i++){
char letter = Character.toUpperCase(words[i].charAt(0));
string = " " + letter+ words[i].substring(1);
str += string;
}
return str;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
LetterCapitalize c = new LetterCapitalize();
System.out.print(c. CapitalizeLetter(s.nextLine()));
}
}
以下可以解決它。將str重新初始化為空字符串。
import java.util.Scanner;
public class LetterCapitalize {
String CapitalizeLetter(String str) {
String[] words = str.split(" ");
String string = " ";
//re initialize to empty string
str="";
for(int i = 0; i < words.length; i++){
char letter = Character.toUpperCase(words[i].charAt(0));
string = " " + letter+ words[i].substring(1);
str += string;
}
return str;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
LetterCapitalize c = new LetterCapitalize();
System.out.print(c. CapitalizeLetter(s.nextLine()));
}
}
如果您可以使用外部庫,請嘗試在該庫中capitalize
。
將str
重置為空或使用新的字符串變量。 因為它已經包含輸入字符串。
str = "";
不要在字母capitalization
同時添加空間。 這樣,最終將在輸出的前面留出額外的空間。 當您的output string
長度大於零時添加空格,這意味着它已經包含一些字符串。 這應該是for循環中的第一件事,否則,您將在字符串末尾獲得額外的空間。
if (str.length() > 0) { str = str + " "; }
這是代碼:
public class LetterCapitalize {
String CapitalizeLetter(String str) {
String[] words = str.split(" ");
String string;
str = "";
for(int i = 0; i < words.length; i++) {
if (str.length() > 0) {
str = str + " ";
}
char letter = Character.toUpperCase(words[i].charAt(0));
string = letter+ words[i].substring(1);
str += string;
}
return str;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.