Split String []分成两个其他字符串[]

时间:2012-02-01 12:43:27

标签: java arrays string

我有String[]看起来像这样,第一个String远离属性名称,第二个是值:

String[] full = { "property1", "value1", "property2", "value2", "property3", "value3" };

我想将String[]分成另外两个String[],如下所示:

String[] properties = { "property1", "property2", "property3" };
String[] values = { "value1", "value2", "value3" };

有没有办法以编程方式执行此操作?

PS:Strings中的属性/值full可能会有所不同

3 个答案:

答案 0 :(得分:12)

最简单的方法就是:

String[] properties = new String[full.length / 2];
String[] values = new String[full.length / 2];
for (int i = 0; i < properties.length; i++)
{
    properties[i] = full[i * 2];
    values[i] = full[i * 2 + 1];
}

很难看出你能以一种比这更简单的方式做到这一点。您可能希望验证开始时full.length是偶数。

构建两个数组而不是(比如)Map<String, String>的任何理由?

答案 1 :(得分:3)

不是分成两个数组,而是为了快速查找构建Map通常更有用。

public static Map<String, String> asMap(String... keyValuePairs) {
    Map<String, String> map = new LinkedHashMap<>();
    for(int i = 0; i < keyValuePairs.length; i += 2)
        map.put(keyValuePair[i], keyValuePait[i+1]);
    return map;
}

Map<String, String> map = asMap("property1", "value1",
                                "property2", "value2",
                                "property3", "value3");
String value3 = map.get("property3");

答案 2 :(得分:0)

您可以将偶数成员和奇数成员拆分为2 String []。 因此,您必须指定每个子字符串的大小。 如果原始字符串的长度为奇数,则子字符串包含奇数成员长度,子字符串和子字符串包含偶数成员长度为+ 1。 else 2 substring是相同的length = length / 2.