我只需要澄清一下。 我正在做的事情java--TitleCase練習使用JAVA
一定的練習寫一個靜態方法將取代每個單詞的所有首字母 與大寫字母的字符串。 例如:一個字符串只是一個字符串---->一個字符串只是一個字符串
我能夠完成所需的輸出,但我對這部分代碼感到困惑。
這似乎是工作:
char j;
if (length > 1) {
for (int i = 0; i < length; i++) {
j = str2.charAt(i);
if (j == ' ') {
str = str + j + (Character.toUpperCase(str2.charAt(i + 1)));
i++; // for skip
} else {
str = str + j;
}
}
} else {
str = "Please enter a string.";
}
然而,當我這樣說並不似乎工作:
Char j, k;
if (length > 1) {
for (int i = 0; i < length; i++) {
j = str2.charAt(i);
k = str2.charAt(i + 1);
if (j == ' ') {
str = str + j + (Character.toUpperCase(k));
i++; // for skip
} else {
str = str + j;
}
}
} else {
str = "Please enter a string.";
}
可有人請解釋一下爲什麼?我有沒有想念或忽略某些東西?
這裏是整個代碼的方式:
package exercises.exercisesday3.part1;
import java.util.Scanner;
public class Exercise5CapitalLetters {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Enter source String: ");
String capital = myTitleCase(" " + input.nextLine());
System.out.println(capital);
input.close();
}
public static String myTitleCase(String capitalLetter) {
String str = "";
String str2 = capitalLetter.replaceAll("\\s+", " ");
int length = str2.length();
char j;
if (length > 1) {
for (int i = 0; i < length; i++) {
j = str2.charAt(i);
if (j == ' ') {
str = str + j + (Character.toUpperCase(str2.charAt(i + 1)));
i++; // for skip
} else {
str = str + j;
}
}
} else {
str = "Please enter a string.";
}
return str.trim();
}
}
您可能需要提供關於你的問題的變量,如長度,STR2,STR等特殊初始化的更多詳細信息,否則用戶將獲得難以提供堅實的答案 – Coder
注意到。將提供整個代碼。 –
@Coder完成編輯問題。謝謝你提醒我。 –