[英]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.