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

Java 如何在字符串数组中的特定索引处追加字符串,java,string,append,arrays,Java,String,Append,Arrays,我有一个字符串数组,如下所示: String[] titles = new String[] { "Booking", "Entry", "Type", "Duration", "Status", "Contract ID", "Capacity", "Start Day", "End Day", "Source Ref" }; titles = new String[] { "Booking", "Shipper

我有一个
字符串
数组,如下所示:

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" };
我需要在以后的状态中将更多的值附加到此数组,如下所示:

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”


是否有任何方法可以基于索引或任何方式附加这些值,而不创建上面的示例?(有可能吗?

您可以将字符串保存在
数组列表中,然后使用
。添加(索引,文本)
方法

最好使用
列表
,只使用
添加()
方法

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

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

要基于索引添加它们,实际上需要创建一个新数组,映射旧数组中的所有值,并在运行时添加新值

如果您使用的是,它有一个
insert
方法,可以在列表中的任何索引处插入新值,这会容易得多

例:

ArrayList myList=new ArrayList();
myList.添加(“预订”);
myList.添加(“条目”);
myList.add(“类型”);
myList.添加(“期限”);
myList.add(“状态”);
myList.add(“合同ID”);
myList.添加(“容量”);
myList.add(“开始日”);
myList.add(“结束日”);
myList.add(“源参考”);
//插入
myList.添加(1,“托运人”);
我的列表。添加(2,“预订数量”);

也许我没有正确回答你的问题,但是你可以使用
ArrayList
而不是简单的数组。您可以这样做:

titles.add(1, "Shipper");
titles.add(2, "Book Quantity");
因此,您基本上将位置1和2处的两个新元素添加到标题的
ArrayList


不,普通数组不能这样做。

初始化这样的数组时

String[] titles = new String[] { "Booking", "Entry", "Type",
                "Duration", "Status", "Contract ID",
                "Capacity", "Start Day", "End Day", "Source Ref" };
属性“*
因此,在您的情况下,您必须初始化新数组……
或者您可以使用
ArrayList
并使用其
add(index,value)
方法,您可以根据需要添加您的值 位置..

但它也使用动态数组的概念。

您可以按如下方式使用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 titleList=新的ArrayList();
标题列表。添加(“托运人”);
标题列表。添加(“预订”);
标题列表。添加(“条目”);
标题列表。添加(“类型”);
标题列表。添加(“期限”);
标题列表。添加(“状态”);
标题列表。添加(“合同”);
标题列表。添加(“ID”);
//....
标题列表。添加(1,“托运人”)
标题列表。添加(2,“预订质量”);

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

+1查找数组行的属性。这应该是不使用阵列的原因。我将我的阵列更改为列表,并进行适当的更改,然后再次转换为阵列。谢谢大家。