0

Processingを使用して文字列に文字を挿入しようとしています。

少し読んだ後、私は次の(私はJavaだと思います)コードを試しました:

1: String st = new String("abcde");
2: st = StringBuffer(st).insert(2, "C");


そして、次の応答を得ました:

the function StringBuffer(String) does not exist 


これを行うための別の/より簡単な方法はありますか?StringBufferを使用する必要がありますか?私はかなり初心者のプログラマーなので、どんな助けでも大歓迎です。

4

2 に答える 2

3

さて、私は「拡張言語API」の処理を見てきましたが、そのような機能はそのままではないようです。

Stringクラスのsubstring()関数を見ると、2番目の位置で2つに切断され、その間に他の文字が印刷されたStringがある例がわかります。それはさらにあなたを助けますか?

String str1 = "CCCP"; 
String str2 = "Rabbit"; 
String ss1 = str1.substring(2);     // Returns "CP"
String ss2 = str2.substring(3);     // Returns "bit"
String ss3 = str1.substring(0, 2);  // Returns "CC"
println(ss1 + ":" + ss2 + ":" + ss3);  // Prints 'CP:bit:CC'

あなたの例をとると、これは正しい位置に「C」を挿入します:

String st = new String("abcde");
String p1 = st.substring(0,2); // "ab"
String p2 = st.substring(2); // "cde"
st = p1 + "C" + p2; // which will result in "abCcde"

または、そのための関数を作成します。気をつけてください、超堅牢ではありません(空の文字列、オーバーフローなどのチェックはありません)が、仕事をします:

String insert(original, toInsert, position){
  String p1 = original.substring(0,position);
  String p2 = original.substring(position);
  return p1 + toInsert + p2;
}

...

String st = new String("abcde");
st = insert(st, "C", 2); // "abCcde"
st = insert(st, "D", 4); // "abCcDde"

http://sketch.processing.orgでテスト済み

于 2012-08-22T17:09:30.123 に答える
0

この関数を使用して、挿入ごとに1回呼び出すことにより、複数のアイテムを挿入できます。簡単にするために、右から左に挿入してください。そうしないと、左に挿入すると挿入する位置が変わります。

例:

String original="The quick fox jumped over lazy dog";
// lets insert "brown" at position 10, "the" at 21, and "'s back" at 34 to make
// "The quick brown fox jumped over the lazy dog's back"
println( original );
original= insertInString( original, "'s back", 34 );
original= insertInString( original, "the ", 26 );
original= insertInString( original, "brown ", 10 );
println( original );

これにより、次の出力が生成されました。

The quick fox jumped over lazy dog
The quick brown fox jumped over the lazy dog's back

左から右に挿入する場合は、挿入するたびに位置を調整する必要があります。

于 2021-09-15T16:11:53.597 に答える