0

我正在尝试使用处理将字符插入字符串。

经过一番阅读后,我尝试了以下(我认为是 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 处被切割成两部分。然后打印出它们之间的其他字符。这会对你有进一步的帮助吗?

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

您可以通过为每个插入调用一次来使用此函数插入​​多个项目。为方便起见,请从右向左插入,否则插入位置会随着您向左插入而改变。

例子:

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 回答