我想分割一个字符串:
" 42 2152 12 3095 2"
进入整数列表,但是当我使用.split(" ")
函数时,由于开头的空格,我最初会得到一个空的""
元素。有没有办法在没有空元素的情况下拆分它?
答案 0 :(得分:2)
您可以使用String.trim
从原始字符串中删除前导和尾随空格
String withNoSpace = " 42 2152 12 3095 2".trim();
答案 1 :(得分:2)
在对阵列调用split之前,请使用 String.trim()函数。这将删除原始字符串
之前和之后的任何空格例如:
String original = " 42 2152 12 3095 2";
original = original.trim();
String[] array = original.split(" ");
为了使您的代码更整洁,您还可以将其编写为:
String original = " 42 2152 12 3095 2";
String[] array = original.trim().split(" ");
如果我们打印出阵列:
for (String s : array) {
System.out.println(s);
}
输出结果为:
42
2152
12
3095
2
希望这有帮助。
答案 2 :(得分:1)
您可以使用Scanner
,它将从字符串
Scanner scanner = new Scanner(number);
List<Integer> list = new ArrayList<Integer>();
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
答案 3 :(得分:1)
根据上述答案,您要问所有这些方法之间的性能差异:
没有真正的性能差异,所有这些都会与O(n)一起运行。
实际上,首先拆分字符串,然后将它们添加到集合中将包含2 x O(n)个循环。