拆分空格分隔列表
这是我面临的一个常见任务:将空间分隔的列表拆分为 head 元素和包含 tail 元素的数组。例如,给定此字符串:
the quick brown fox
我们想要:
"the"
["quick","brown","fox"]
..在两个不同的变量中。第一个变量应该是字符串,第二个变量应该是数组。我正在寻找一种优雅的方法来做到这一点(最好是在Java中)。
这是我面临的一个常见任务:将空间分隔的列表拆分为 head 元素和包含 tail 元素的数组。例如,给定此字符串:
the quick brown fox
我们想要:
"the"
["quick","brown","fox"]
..在两个不同的变量中。第一个变量应该是字符串,第二个变量应该是数组。我正在寻找一种优雅的方法来做到这一点(最好是在Java中)。
对于某些优雅的价值观:
String input = "The quick brown fox";
String[] elements = input.split(" ");
String first = elements[0];
String[] trailing = Arrays.copyOfRange(elements,1,elements.length);
我想不出一种方法来用更少的代码做到这一点......
最优雅的大概是用来得到一个,然后用把它变成一个。如果您确实需要一个单独的列表减去头部,只需使用.String.split
String[]
Arrays.asList
List<String>
List.subList
String text = "the quick brown fox";
List<String> tokens = Arrays.asList(text.split("\\s+"));
String head = tokens.get(0);
List<String> body = tokens.subList(1, tokens.size());
System.out.println(head); // "the"
System.out.println(body); // "[quick, brown, fox]"
System.out.println(body.contains("fox")); // "true"
System.out.println(body.contains("chicken")); // "false"
使用 a 可以利用 Java 集合框架提供的丰富功能。List