我正在从学校做一个简短的作业,由于某种原因,两个相邻的分隔符正在打印一个空行。如果它们之间有空间但我没理解,我会理解这一点。我错过了一些简单的事吗?我希望每个令牌一次打印一行而不打印~.
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
答案 0 :(得分:3)
如果他们之间有空间,我会理解这一点 ISN&#39;吨
是的,确保它们之间没有空格,但它们之间有一个空字符串。实际上,每对字符之间都有空字符串。
这就是为什么当您的分隔符彼此相邻时,分割将在它们之间获得空字符串。
我希望每个令牌一次打印一行而不打印
~.
那你为什么要在你的分隔符中加入/
? [./~]
表示匹配.
,/
或~
。拆分它们也不会打印/
。
如果您只想在~.
上拆分,那么只需在字符类[.~]
中使用它们即可。但同样,它并不是很清楚,你想要什么输出。可能是您可以为当前输入发布预期输出。
好像你在.
,/
和/~
上分道扬..在这种情况下,您无法在此处使用字符类。您可以使用此模式进行拆分: -
String[] words = asuURL.split("[.]|/~?");
这将分为: - .
,/~
或/
(因为~
是可选的)
答案 1 :(得分:2)
你认为吐痰会产生什么? /和〜之间有什么关系?是的,没错,有一个空字符串(“”)。
答案 2 :(得分:0)
/~
之间没有字符,因此当您拆分这些字符时,您应该会看到一个空字符串。
我怀疑你不需要分开~
,事实上我也不会分开.
。