String的split函数,字符串前面的空格怎么去不掉

publicclassTestSplit{publicstaticvoidmain(String[]args){Stringts="abc";//ts=ts.trim()... public class TestSplit {
public static void main(String[] args)
{

String ts = " a b c";
//ts = ts.trim();
String [] words = ts.split(" ");
for(int i=0;i<words.length ;i++)
System.out.println("i="+i+","+words[i]);
Pattern pattern =Pattern.compile("\\s");
words= pattern.split(ts);
for(int i=0;i<words.length ;i++)
System.out.println("i="+i+","+words[i]);
}
}
为什么结果都是:
i=1,
i=2,
i=3,a
i=4,b
i=5,c
\\s不是空白符吗,为什么中间的空白符去掉了,开头的却去不掉?
程序中ts为"**a*b*c",其中*代表空格
展开
 我来答
百度网友c4249ef
推荐于2016-09-30 · TA获得超过4867个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3215万
展开全部
开始不是没去掉

i=1,
i=2,

前两个的串是空,而不是空格

开头的两个空格也是分隔符

意思就是说,把空格换成|,来分隔

"||a|b|c"

开头的两个|,也是分隔符,只不过分隔出来的东西是空就是了
Granth
2009-10-21
知道答主
回答量:54
采纳率:0%
帮助的人:0
展开全部
运行的结果应该是这样的:
i=0,
i=1,
i=2,a
i=3,b
i=4,c

开头的也去掉了,因为你给它的初始化的开头就有二个空格,而你又是按空格分割的,所以前面二个也当了二个分割符,所以前二个String的值都为""。

希望能给你帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
友油妮薅
2015-10-24 · 致力于回答相关问题。
友油妮薅
采纳数:109 获赞数:1222

向TA提问 私信TA
展开全部
开始不是没去掉

i=1,
i=2,

前两个的串是空,而不是空格

开头的两个空格也是分隔符

意思就是说,把空格换成|,来分隔

"||a|b|c"

开头的两个|,也是分隔符,只不过分隔出来的东西是空就是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苹果懒猫猫
2009-10-15 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:191万
展开全部
你输入的字符串就有一个空格...在开头String ts = " a b c";<-
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式