私はちょうどこの1つを明確にする必要があります。 私はJavaで一定の練習をしています -TitleCaseエクササイズJAVAを使用
文字列内のすべての単語のすべての最初の文字をすべて大文字で置き換える静的メソッドを記述してください。 例:文字列は単なる文字列です---->文字列だけです
私は目的の出力を達成することができましたが、私のコードのこの部分では混乱しました。
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.";
}
誰かが理由を説明していただけます:私はこのようにそれを置くとき
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.";
}
しかし、ITが動作していないよう:
これは動作するようですか?私は何か見落としたり、見落としたりしましたかそれは以下のコードでのショーのように変更する必要がありますk = str2.charAt(i + 1)
としてkの値を読み取る間違った方法が原因である
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();
}
}
する必要があります – Coder
著名。コード全体を提供します。 –
@コーデッド編集編集の質問です。私に思い出させてくれてありがとう。 –