这是我面临的一项常见任务:将空格分隔列表拆分为head元素和包含tail元素的数组.例如,给定此字符串:
the quick brown fox
Run Code Online (Sandbox Code Playgroud)
我们想要:
"the"
["quick","brown","fox"]
Run Code Online (Sandbox Code Playgroud)
..在两个不同的变量.第一个变量应该是一个字符串,第二个变量应该是一个数组.我正在寻找一种优雅的方式(最好用Java).
Alt*_*ape 27
对于某些优雅的价值观:
String input = "The quick brown fox";
String[] elements = input.split(" ");
String first = elements[0];
String[] trailing = Arrays.copyOfRange(elements,1,elements.length);
Run Code Online (Sandbox Code Playgroud)
我想不出用更少的代码来做到这一点的方法......
最优雅的可能是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"
Run Code Online (Sandbox Code Playgroud)
使用a List允许您利用Java Collections Framework提供的丰富功能.
| 归档时间: |
|
| 查看次数: |
37557 次 |
| 最近记录: |