0

ピリオド「。」の後の最初の文字を大文字にするコードを作成しようとしています。

例えば:

String str = "abcdef. ghijk, mlnopqrs. tuv .................." 
//the "............" means the line is still going on.

出力は次のようになります。

"Abcdef. Ghijk, mlnopqrs. Tuv ................."

注: 基本的な方法のみを使用してください

文字列: charAt, indexOf, length, substring,toUpperCase

つまり、 no Stringbuilder、no array、no split ... などです。このサイトで見つけた他の解決策には、それらが含まれます。


編集: 迅速な返信に感謝します。Robin Krahl の編集を見たところです。ええ、コードを追加するのを忘れていました。私のコードはmauの返信とまったく同じように見えます。しかし、このコードはこの例外で終わります

java.lang.StringIndexOutOfBoundsException: 文字列インデックスが範囲外です

そして、ここから、それを修正する方法がわかりません-.-

4

4 に答える 4

1

ロジック部分でお手伝いできます:

  1. "." までの部分文字列を検索します。
  2. 部分文字列の 0 番目の位置にある charAt を大文字にします。
  3. "." がなくなるまで 1 から 2 をループします。文字列に存在する
  4. 部分文字列を連結する

お役に立てれば

于 2013-10-24T23:27:03.643 に答える
1
int length = str.length()
for(int x = 0; x < length-1; x++) {
  if(str.charAt(x) == '.') {
    str = str.substring(0,x+1) + (""+str.charAt(x+1)).toUpperCase() + str.substring(x+2,length+1);
  }
}

文字がピリオドの直後でない場合は、2 つ先を見るか、ループして次の文字を探します。あなたは言うことができます

letter = str.charAt(x);
if((letter >= 'A' && letter <= 'Z") || (letter >= 'a') && letter <= 'z'))
于 2013-10-24T23:28:35.197 に答える