[英]Why is my Java split method causing an empty line to print?
我正在从学校进行一次简短的作业,由于某种原因,两个分隔符彼此相邻,导致打印出空行。 如果他们之间有空间,但没有空间,我会理解这一点。 我是否缺少简单的东西? 我希望每个令牌一次只打印一行而不打印~.
public class SplitExample
{
public static void main(String[] args)
{
String asuURL = "www.public.asu.edu/~JohnSmith/CSE205";
String[] words = new String[6];
words = asuURL.split("[./~]");
for(int i = 0; i < words.length; i++)
{
System.out.println(words[i]);
}
}
}//end SplitExample
编辑:所需的输出如下
www
public
asu
edu
JohnSmith
CSE205
如果他们之间有空间但没有空间,我会理解的
是的,请确保它们之间没有空格,但是它们之间没有空字符串。 实际上,每对字符之间都有一个空字符串。
这就是为什么当分隔符彼此相邻时,拆分会在它们之间得到空字符串。
我希望每个令牌一次只打印一行而不打印
~.
那么,为什么要在分隔符中包含/
? [./~]
表示匹配.
或/
或~
。 拆分它们也不会打印/
。 如果您只想拆分~.
,然后在字符类- [.~]
使用它们。 但是,还不清楚您到底想要什么输出。 也许您可以为当前输入发布预期的输出。
似乎您正在分裂.
, /
和/~
。 在这种情况下,您不能在此处使用字符类。 您可以使用此模式进行拆分:-
String[] words = asuURL.split("[.]|/~?");
这将拆分:- .
, /~
或/
(因为~
是可选的)
您认为唾液会产生什么? /和〜之间是什么? 是的,没错,这里有一个空字符串(“”)。
/~
之间没有字符,因此当您分割这些字符时,应该会看到一个空白字符串。
我怀疑你不需要分裂~
而且实际上我不会分裂.
要么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.