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