【问题标题】:add string to String array [duplicate]将字符串添加到字符串数组[重复]
【发布时间】:2012-12-15 09:39:31
【问题描述】:

我是 Java 新手,所以我不需要什么帮助

我有

String [] scripts = new String [] ("test3","test4","test5");

我想在这个数组(脚本)中添加新字符串(string1,string2)作为示例

String string1= " test1"
String string2 = "test2"

我想添加新字符串不是在初始化中而是在后期阶段

我该怎么做?

【问题讨论】:

  • 你能用List(比如ArrayList)吗?或者你可以创建一个更大的新数组,在旧数组中循环从索引 = 2 添加。然后在索引 01 处添加新元素。
  • 所以您对 SO 并不陌生,请在发布问题之前进行搜索以避免投票。
  • 如果您需要动态修改元素,请使用java.util.Collections。映射需求和可用的集合类型。对于上述情况,正如所有建议的那样,ArrayList 更可取。

标签: java


【解决方案1】:

您不能在 java 中调整数组的大小。

一旦声明了数组的大小,它就保持不变。

相反,您可以使用具有动态大小的ArrayList,这意味着您无需担心它的大小。如果您的数组列表不足以容纳新值,那么它将自动调整大小。

ArrayList<String> ar = new ArrayList<String>();
String s1 ="Test1";
String s2 ="Test2";
String s3 ="Test3";
ar.add(s1);
ar.add(s2);
ar.add(s3);

String s4 ="Test4";
ar.add(s4);

【讨论】:

  • 确保同时导入 java.util.ArrayList
【解决方案2】:

首先,这段代码在这里,

string [] scripts = new String [] ("test3","test4","test5");

应该是

String[] scripts = new String [] {"test3","test4","test5"};

请在Arrays阅读本教程

第二,

数组是固定大小的,所以你不能在上面的数组中添加新的字符串。您可以覆盖现有值

scripts[0] = string1;

(或)

创建具有大小的数组,然后继续添加元素直到它填满。

如果您想要可调整大小的数组,请考虑使用ArrayList

【讨论】:

    【解决方案3】:

    你必须写下一些方法来创建一个临时数组,然后像这样复制它

    public String[] increaseArray(String[] theArray, int increaseBy)  
    {  
        int i = theArray.length;  
        int n = ++i;  
        String[] newArray = new String[n];  
        for(int cnt=0;cnt<theArray.length;cnt++)
        {  
            newArray[cnt] = theArray[cnt];  
        }  
        return newArray;  
    }  
    

    ArrayList 将有助于解决您的问题。

    【讨论】:

    • +1 好。也可以使用 System.arrayCopy
    • 你可以使用 Arrays.copyOf() 来达到同样的效果。
    【解决方案4】:

    由于 Java 数组包含固定数量的值,因此在这种情况下,您需要创建一个长度为 5 的新数组。更好的解决方案是使用 ArrayList 并简单地将字符串添加 到数组中。

    例子:

    ArrayList<String> scripts = new ArrayList<String>();
    scripts.add("test3");
    scripts.add("test4");
    scripts.add("test5");
    
    // Then later you can add more Strings to the ArrayList
    scripts.add("test1");
    scripts.add("test2");
    

    【讨论】:

      【解决方案5】:

      许多建议更好的解决方案的答案是使用 ArrayList。 ArrayList 大小不固定,易于管理。

      它是 List 接口的 resizable-array 实现。实现所有可选列表操作,并允许所有元素,包括 null。除了实现 List 接口之外,该类还提供了一些方法来操作内部用于存储列表的数组的大小。

      每个 ArrayList 实例都有一个容量。容量是用于存储列表中元素的数组的大小。它总是至少与列表大小一样大。随着元素被添加到 ArrayList,它的容量会自动增长。

      请注意,此实现不同步。

      ArrayList<String> scripts = new ArrayList<String>();
      scripts.add("test1");
      scripts.add("test2");
      scripts.add("test3");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-30
        • 2021-03-10
        • 2016-08-02
        • 1970-01-01
        • 2012-10-06
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        相关资源
        最近更新 更多