java从String数组初始化多个字符串

时间:2017-04-28 07:36:17

标签: java arrays string

我从服务中获取一个String数组(或实际上是一个逗号分隔的字符串,我将其拆分为一个String数组),我想将它们提取到具有有意义名称的单独字符串中,例如:

if(isset($_GET["hasClick"]) && $_GET["hasClick"]){
    echo $_jetty;
}

由于阵列很长并且有许多这样的字符串要提取,我正在寻找最短的方法来做到这一点,但是无法在SO /网络上找到任何东西。 谢谢!

修改

作为一个例子,输入可能是[" foo"," bar"," 2017/04/04"," A& #34;],我想如上所述提取那些有意义的名称字符串,然后沿途使用它们,例如调用function1(名称,日期)然后再调用function2(名称,值)等。 - 我只想要这个翻译(需要知道哪个数组索引包含哪些数据)才能发生一次并且我的代码需要知道这个数组的映射指数到处都有意义。 所以我可以有一个翻译函数来做这个并将值插入到地图或其他东西中,但我认为因为这些都是字符串,所以我应该有一种方法可以一次初始化所有这些。

2 个答案:

答案 0 :(得分:1)

除非输入数据包含字段名称或其他元数据,否则您无法绕过将名称与索引相关联的代码,例如上面的代码段。

您可以为字符串数组中编码的对象类创建一个类,并提供一个构造函数或静态工厂方法,用于从字符串数组初始化该对象。

class WhateverItIs
{
   public static WhateverItIs fromStrings(String[] strings)
   {
       WhateverItIs instance = new WhateverItIs();
       instance.value = strings[0];
       instance.name = strings[1];
       // ...
       return instance;
   }

   private String value;
   private String name;
   // add getters
}

然后,客户端可以访问所创建对象的属性。

关于你的问题的编辑:你提到的函数可能成为类的方法,可能不再需要任何参数,因为数据在实例变量中。

答案 1 :(得分:0)

为什么要使用阵列中的多个字符串。它将不必要地增加JVM内存。更好的选择是将其列入清单。如果数据是名称和值的形式,你可以随时使用地图,其中key可以是名称和值。