我只是想知道在指示我们可以插入指定参数的位置(类型为String,Object,char []等的位置)时,offset和index的语义之间是否存在任何差异。例如,所有双参数insert()重载方法都将该位置称为" offset"。但是,这一个:
public StringBuilder insert(int index, char[] str, int offset, int len)
使用" index"引用插入发生的字符串中的位置。 从技术上讲,我认为正确的术语应该是" offset"但只是想知道为什么类设计师使用了两个不同的术语,基本上是相同的动作。
谢谢。
答案 0 :(得分:0)
来自javadoc:
将str数组参数的子数组的字符串表示形式插入到此序列中。 子阵列从指定的偏移量开始并扩展len个字符。子阵列的字符在索引指示的位置插入此序列。这个序列的长度增加了len chars。
所以:
offset
与str
相关联,char[]
与StringBuilder
index
与StringBuilder
特别是来自javadoc:
index
- 插入子阵列的位置。
str
- 一个char数组。
offset
- 要插入的子数组中第一个字符的索引。
len
- 要插入的子数组中的字符数。
以下是显示它的示例代码:
String originalContent = "1234567890";
char[] charArray = new char[]{'a', 'b', 'c', 'd'};
StringBuilder a = new StringBuilder(originalContent);
a.insert(2, charArray, 0, 1);
System.out.println(a.toString()); // Prints 12a34567890
StringBuilder b = new StringBuilder(originalContent);
b.insert(0, charArray, 2, 1);
System.out.println(b.toString()); // Prints c1234567890