2016-12-07 3 views
0

私はちょうどこの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(); 
    } 
} 
+0

する必要があります – Coder

+0

著名。コード全体を提供します。 –

+0

@コーデッド編集編集の質問です。私に思い出させてくれてありがとう。 –

答えて

0

は、ここでの方法によって、全体のコードです。

コードでは、指定された文字列の長さを超えて文字にアクセスしてみてください。

これは、あなたがそうでなければ、ユーザーが固体の答えを提供するのは難しいでしょう、あなたの質問などSTR等の長さ、STR2、などの変数の特別初期化の詳細を提供する必要があるかもしれません修正されたコード

char j, k=0; 
    if (length > 1) { 
     for (int i = 0; i < length; i++) { 
      j = str2.charAt(i); 
      if(i!=length-1){ 
       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."; 
    } 
+0

私はあなたのコードを試してこの結果を得ました ソースコードを入力してください: 文字列は文字列です 文字列はちょうどStrinです –

+0

文字 "g"がありません。 –

+0

更新されたコードが機能しました! –

関連する問題