0

文字列内の単語の特定の位置に文字を設定する方法をコーディングしようとしています。メソッドは「setChar(l, w, c, d)」のようなもので、l行目のw番目の単語のc番目の文字を「d」にしたい。たとえば、「私は学生です」という文字列があるとします。setChar(1, 2, 2, "X") の後、文は「私は学生です」になります。

まだこれを行う方法がわからないので、特定のコードで私を助けてください、どうもありがとうございました!!!!

4

3 に答える 3

1

まず、String不変であり、特定のStringオブジェクトの内容を変更することはできません。第二に、Java のすべての配列は 0 ベースです。これは例にとって重要です...

StringBuilder基本的に、内部char配列を使用して個々の文字を格納するを使用する必要があります。charメソッド操作を介して、配列のコンテンツを追加、削除、および変更する手段を提供します。

Stringを にラップしたらStringBuilder、簡単なプロセスsetCharAtで個々のキャラクターを変更できます。

変更を行ったら、StringBuilder背面の内容をString

例えば...

String text = "I am a student";
StringBuilder sb = new StringBuilder(text);
sb.setCharAt(3, 'X');
text = sb.toString();
System.out.println(text);

ここで、Java API の多くと同様に に基づいていることを思い出してください。StringBuilderこれ0は、 の最初の文字がStringBuilderindex0ではなくindex にあることを意味します。1

詳細については、StringBuilderAPI を詳しく見てください。

于 2013-09-30T00:03:48.237 に答える
1

最も簡単なのは連結することです。

    int indx = 5;
    char c = 'U';
    String s = "Hello World";
    s = s.substring(0,indx)+c+s.substring(indx+1,s.length());
    System.out.println(s);

HellUWorld

バッキング char 配列内の文字を置き換えて、新しい文字列を作成することで、少しきれいになります。

    char[] c = "Hello World".toCharArray();
    c[5] = 'U';
    String s = new String(c);
    System.out.println(s);
于 2013-09-30T00:05:53.690 に答える
1

文字列が複数行の文字列 (つまり、改行がある) であると仮定すると、改行で文字列を分割できます。

String[] lines = string.split("\n");

次に、空白で文字列を分割します。

String[] words = lines[l].split(" ");

次に、words[w][c] でその文字を変更しながら、StringBuilder で再構築します。

そんな感じ。古いファッションのCのような方法でそれを行う方がおそらくより効率的でしょう。

于 2013-09-30T00:09:20.613 に答える