如何在字符串数组的特定索引处添加字符串

4

我有一个如下的String数组:

String[] titles = new String[] { "Booking", "Entry", "Type",
                    "Duration", "Status", "Contract ID",
                    "Capacity", "Start Day", "End Day", "Source Ref" };

我需要在稍后的阶段向此数组附加更多的值,如下所示:

titles = new String[] { "Booking", "Shipper", "Booking Quantity", "Entry", 
                        "Type", "Duration", "Status", 
                        "Contract ID", "Capacity", "Start Day", 
                        "End Day", "Source Ref" };

我在第一个数组中添加了"Shipper", "Booking Quantity"

是否有一种根据索引或其他方式追加这些值的方法,而不需要创建如上例所示的方式?(这可能吗?)

7个回答

5
也许我没有理解你的问题,但是你可以使用ArrayList<String>代替简单数组。你可以像这样操作:
titles.add(1, "Shipper");
titles.add(2, "Book Quantity");

所以,你基本上是将两个新元素添加到标题的ArrayList<String>中,在位置1和2。

而且,你不能使用普通数组来实现这一点。


5
当你像这样初始化一个数组时:
String[] titles = new String[] { "Booking", "Entry", "Type",
                "Duration", "Status", "Contract ID",
                "Capacity", "Start Day", "End Day", "Source Ref" };

数组的属性是"一旦你初始化数组之后,就无法改变数组的大小"*
所以在您的情况下,您必须初始化一个新数组...
或者您可以使用 ArrayList ,并使用其 add(index, value) 方法将值添加到所需的位置..
但是它也隐式地使用了 动态数组的概念.


数组行的属性+1。这可能是不使用数组的原因。 - Naveen Babu

3

不行,数组不是动态的。你需要创建一个新的数组。在创建数组之前,必须知道大小。

String[] strings = new String[titles.length + 2];
strings[0] = "Booking";
strings[1] = "Shipper";
//...

3
要按索引添加它们,您实际上需要创建一个新数组,并将旧数组的所有值映射到其中,并在添加新值时逐步进行。
如果您使用 ArrayList,则会更容易,因为它具有可以在列表中的任何索引处插入新值的 insert 方法。
例如:
ArrayList<String> myList = new ArrayList<>();
myList.add("Booking");
myList.add("Entry");
myList.add("Type");
myList.add("Duration");
myList.add("Status");
myList.add("Contract ID"); 
myList.add("Capacity");
myList.add("Start Day");
myList.add("End Day");
myList.add("Source Ref");

//insertion 
myList.add(1, "Shipper");
mylist.add(2, "Booking Quantity");

2
您可以将字符串存储在ArrayList<String>中,然后使用.add(index, text)方法。

2
更好的方法是使用List<String>,然后只使用add()方法。

2
您可以按照以下方式使用ArrayList:
ArrayList titleList = new ArrayList<String>();
titleList.add("Shipper");
titleList.add("Booking");
titleList.add("Entry");
titleList.add("Type");
titleList.add("Duration");
titleList.add("Status");
titleList.add("Contract");
titleList.add("ID");
//....
titleList.add(1,"Shipper")
titleList.add(2,"Booking quality");

使用ArrayList的好处是可以使用迭代器并执行各种操作,如搜索特定条目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接