如何在字符串数组中的特定索引处追加String

时间:2011-12-15 06:02:33

标签: java string append arrays

我有一个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 个答案:

答案 0 :(得分:5)

也许我的问题没有解决,但您可以使用ArrayList<String>代替简单数组。你可以这样做:

titles.add(1, "Shipper");
titles.add(2, "Book Quantity");

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

不,你不能用普通数组做到这一点。

答案 1 :(得分:5)

初始化像这样的数组时

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

数组的属性“一旦初始化数组,之后就无法更改数组的大小”*
所以在你的情况下你必须初始化新数组....
或者您可以使用ArrayList及其add(index, value)方法,您可以根据需要添加值 位置..
但隐含它也使用Concept of Dynamic Array..

答案 2 :(得分:3)

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

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

答案 3 :(得分:3)

要根据索引添加它们,您实际需要创建一个新数组并映射旧数组中的所有值,并随时添加新值。

如果你使用ArrayList会更容易,{{3}}有一个insert方法可以在List中的任何索引处插入新值

例如:

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");

答案 4 :(得分:2)

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

答案 5 :(得分:2)

最好使用List<String>并使用add()方法。

答案 6 :(得分: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的好处是可以使用Iterator并执行各种操作,例如搜索特定条目。