Java - 将数组值分配给单个变量的快速方法

时间:2012-09-08 05:38:37

标签: java arrays syntax variable-assignment

我有一个方法,它会在数组中返回两个字符串,split(str, ":", 2)是准确的。

在java中是否有更快的方法将数组中的两个值分配给字符串变量而不是

String[] strings = str.split(":", 2);
String string1 = strings[0];
String string2 = strings[1];

例如,是否存在类似

的语法
String<string1, string2> = str.split(":", 2);

提前致谢。

3 个答案:

答案 0 :(得分:5)

不,Java中没有这样的语法。

但是,其他一些语言也有这样的语法。示例包括Python的元组解包和许多函数语言中的模式匹配。例如,在Python中,您可以编写

 string1, string2 = text.split(':', 2)
 # Use string1 and string2

或在F#中你可以写

 match text.Split([| ':' |], 2) with
 | [string1, string2] -> (* Some code that uses string1 and string2 *)
 | _ -> (* Throw an exception or otherwise handle the case of text having no colon *)

答案 1 :(得分:2)

您可以创建一个持有者类:

public class Holder<L, R> {
    private L left;
    private R right;

   // create a constructor with left and right
}

然后你可以这样做:

Holder<String, String> holder = new Holder(strings[0], strings[1]);

答案 2 :(得分:-2)

我可以说“使用循环”。可能是for循环,可能是while,这取决于你。如果这样做,则不必担心阵列大小。一旦您将数组大小作为“终止条件”传递,它将顺利运行。

更新:

我将使用如下代码。无论如何我没有去过它,但我总是使用这种风格。

String [] strings = str.split(“:”,2);

List keepStrings = new ArrayList();

for(int i=0;i<strings.length;i++)
{
    String string = strings[i];

    keepStrings.add(string);


}