文字列内の単語の特定の位置に文字を設定する方法をコーディングしようとしています。メソッドは「setChar(l, w, c, d)」のようなもので、l行目のw番目の単語のc番目の文字を「d」にしたい。たとえば、「私は学生です」という文字列があるとします。setChar(1, 2, 2, "X") の後、文は「私は学生です」になります。
まだこれを行う方法がわからないので、特定のコードで私を助けてください、どうもありがとうございました!!!!
文字列内の単語の特定の位置に文字を設定する方法をコーディングしようとしています。メソッドは「setChar(l, w, c, d)」のようなもので、l行目のw番目の単語のc番目の文字を「d」にしたい。たとえば、「私は学生です」という文字列があるとします。setChar(1, 2, 2, "X") の後、文は「私は学生です」になります。
まだこれを行う方法がわからないので、特定のコードで私を助けてください、どうもありがとうございました!!!!
まず、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
は、 の最初の文字がStringBuilder
index0
ではなくindex にあることを意味します。1
詳細については、StringBuilder
API を詳しく見てください。
最も簡単なのは連結することです。
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);
文字列が複数行の文字列 (つまり、改行がある) であると仮定すると、改行で文字列を分割できます。
String[] lines = string.split("\n");
次に、空白で文字列を分割します。
String[] words = lines[l].split(" ");
次に、words[w][c] でその文字を変更しながら、StringBuilder で再構築します。
そんな感じ。古いファッションのCのような方法でそれを行う方がおそらくより効率的でしょう。