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",其中*代表空格 展开
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",其中*代表空格 展开
展开全部
运行的结果应该是这样的:
i=0,
i=1,
i=2,a
i=3,b
i=4,c
开头的也去掉了,因为你给它的初始化的开头就有二个空格,而你又是按空格分割的,所以前面二个也当了二个分割符,所以前二个String的值都为""。
希望能给你帮助
i=0,
i=1,
i=2,a
i=3,b
i=4,c
开头的也去掉了,因为你给它的初始化的开头就有二个空格,而你又是按空格分割的,所以前面二个也当了二个分割符,所以前二个String的值都为""。
希望能给你帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
开始不是没去掉
i=1,
i=2,
前两个的串是空,而不是空格
开头的两个空格也是分隔符
意思就是说,把空格换成|,来分隔
"||a|b|c"
开头的两个|,也是分隔符,只不过分隔出来的东西是空就是了
i=1,
i=2,
前两个的串是空,而不是空格
开头的两个空格也是分隔符
意思就是说,把空格换成|,来分隔
"||a|b|c"
开头的两个|,也是分隔符,只不过分隔出来的东西是空就是了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你输入的字符串就有一个空格...在开头String ts = " a b c";<-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询