Java 无法拆分字符串

Java 无法拆分字符串,java,split,nsxmlparser,Java,Split,Nsxmlparser,我有一根绳子 praneel PIDIKITI先生 当我使用这个正则表达式时 String[] nameParts = name.split("\\s+"); 我得到的不是三个部分,而是两个,Mr和Praneel PIDIKITI 我无法分开第二根弦。有人知道问题出在哪里吗 我甚至使用了split(“”) 问题是我使用了replaceAll(“\\”,“”)。trim()将html转换成这个字符串,然后我使用name.split(\\s+)以获取名称值 我想它一定不是空格(一些特殊字符)。您

我有一根绳子

praneel PIDIKITI先生

当我使用这个正则表达式时

 String[] nameParts = name.split("\\s+");
我得到的不是三个部分,而是两个,
Mr
Praneel PIDIKITI

我无法分开第二根弦。有人知道问题出在哪里吗

我甚至使用了
split(“”)

问题是我使用了
replaceAll(“\\”,“”)。trim()
将html转换成这个字符串,然后我使用
name.split(\\s+)
以获取名称值


我想它一定不是空格(一些特殊字符)。

您的代码应该可以工作。我怀疑你的意见。Praneel和PIDIKITI之间可能有一个不可打印的垃圾角色。比如说,

    String name = "Mr praneel" + (char)1 +"PIDIKITI";
    String[] nameParts = name.split("\\s+");
    for(String s : nameParts)
        System.out.println(s);
你确定Praneel和PIDIKITI之间没有垃圾角色吗

删除不可打印的字符,如下所示:

// remove non printable characters excluding white space characters
  name = name.replaceAll("[^\\p{Print}\\s]","");

如果您正在解析HTML,我可以推荐您吗?这是一个很好的java HTML解析器

我不能证实这一点。这两种方法对我都有效。请提供一个完整的例子。这可能看起来有些牵强,但Praneel和PIDIKITI之间的空格可能不是真正的空格字符0x20?@Maverik:一点也不牵强——这几乎是必然的@Praneel:在字符串上循环,将每个字符打印为int,实际空格为32,其他都是您的问题。当我在屏幕上打印它时,它看起来像是Mr#Praneel#PIDIKITI@Praneel:删除所有不可打印的垃圾字符,如
name.replaceAll(“[^\\p{Print}]”,“”)
@Praneel:在Praneel和PIDIKITI之间也没有找到空间,只有一个垃圾。