Java将字符串添加到字符串数组

参见英文答案 > Java dynamic array sizes?18个
您好我一直在尝试将String添加到String [].这是我的,
static String[] ipList = {"127.0.0.1","173.57.51.111","69.696.69.69"};
@Override
public void actionPerformed(ActionEvent e) {
    String newIpGet = textfield.getText();
    try {
        for ( int  i = 0; i < Main.ipList.length; i++){
            Main.ipList[i+1] = newIpGet.toString(); // <---- *****
            Main.write(Main.ipList[i]);
        }
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    Main.amountOfIps = Main.amountOfIps + 1;

    System.out.println("Text Entered!");
    System.out.println("There are now " +Main.ipList.length + " Ips.");
    textfield.setVisible(false);

    label.setVisible(true);;
}

但是,我一直得到java.lang.ArrayIndexOutOfBoundsException,因为它不会让我创建任何新的字符串.我无法修改我的ipList []声明而无需进行大量修改,我该怎么办?

解决方法

Java数组具有固定长度( JLS-10.3. Array Creation表示,部分数据的长度可用作最终实例变量长度).但您可以使用 Arrays.copyOf(T[],int)复制数组并使其更长一些.举个例子,像,
String[] ipList = { "127.0.0.1" };
System.out.println(Arrays.toString(ipList));
int len = ipList.length;
ipList = Arrays.copyOf(ipList,len + 1);
ipList[len] = "192.168.2.1";
System.out.println(Arrays.toString(ipList));

输出

[127.0.0.1]
[127.0.0.1,192.168.2.1]

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写:&#160;一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...