在 Java 中定义一个字符串数组

Posted

技术标签:

【中文标题】在 Java 中定义一个字符串数组【英文标题】:Define a String array in Java 【发布时间】:2013-08-15 10:00:31 【问题描述】:

在java中我们可以将main()方法定义为这两种方式。

public static void main(String[] args)           
    System.out.println("Hello World");

.

public static void main(String... args)           
    System.out.println("Hello World");

这两种方法都采用 arrayString 参数。现在考虑以下场景。

    String[] arr=new String[10]; // valid
    String... arr=new String[10];// invalid 

Java 绝不允许以这种方式创建数组String... arr=new String[10];。但在上述方法实现中java 允许这样做。我的问题是java 如何在两种情况下实现这两种不同的行为?

【问题讨论】:

我喜欢这个问题,因此投了赞成票。 【参考方案1】:
... 

是方法参数的语法,而不是变量定义的语法。这个符号的名称是varargs,这是不言自明的,即可变数量的参数。

【讨论】:

【参考方案2】:

Variable argument or varargs(...) 在 Java 中用于编写更灵活的方法,这些方法可以接受尽可能多的参数来进行初始化。

【讨论】:

【参考方案3】:

您可以在main 中使用可变参数,因为用可变参数 (...) 声明的方法与带数组参数的方法声明的字节码兼容(为了向后兼容)。这并不意味着类型声明允许使用相同的语法。

【讨论】:

【参考方案4】:

... 指的是 varargs,其主要目的是使方法更具可读性

void method(String... args) 


可以称为

method("a");method("a", "b");method("a", "b", "c");

我认为在变量声明中使用它没有意义,我们无能为力

String... a = "a", "b"

数组无论如何都可以声明为动态大小

String[] arr = "a";

String[] arr = "a", "b";

【讨论】:

以上是关于在 Java 中定义一个字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

java中如何创建字符串数组?

java中如何创建字符串数组?

java中数组的定义

java如何在String数组中取得指定内容的下标?

java中如何将字符串数组保存在数据库里

如何使用处理 Java 库将自定义形状数组和字符串数组合并到 JSON 对象中