我试图拆分String数组并使用定界符删除所有空格(包括\t
),但是由于某种原因,我得到了一个空元素""
。
我的代码:
String temp = " x = x + 9";
String[] tempArr = temp.split("\\s+");
我得到的结果:
tempArr[0] = ""
tempArr[1] = "x"
tempArr[2] = "="
...
我不明白为什么我在数组的第一个索引中得到一个空元素。
答案 0 :(得分:1)
将split("\s+")
更改为split("\\s+")
,并更早使用trim()
来消除所有前导和尾随的多余空格
String[] tempArr = temp.trim().split("\\s+");
答案 1 :(得分:0)
您使用的"\\s+"
是定界符,并且在给定的字符串" x = x + 9"
中,字符串前面有空格,这意味着第一组空格将空字和x分开。
我将尝试给您一些不使用空格的示例:
String temp = ",a,b,c";
String[] tempArr = temp.split(",");
结果将为:
tempArr[0] = ""
tempArr[1] = "a"
tempArr[2] = "b"
tempArr[2] = "c"
您知道为什么吗?因为在第一个","
前面是空字符串。空格也是一样。
如果您不希望第一个元素为空,请使用功能.trim()
,因为已经建议使用@PRC_noob和@Pshemo。它将删除字符串开头和结尾的空格。