繁体   English   中英

为什么我的Java split方法导致打印空行?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM