Java startsWith不';好像不行

Java startsWith不';好像不行,java,startswith,Java,Startswith,我需要一些帮助来解决这个问题- Java的startsWith()方法似乎不起作用 有人知道为什么会这样吗 方法: public boolean check(File f) { boolean ans = (f.getName().startsWith(this.pre)); System.out.println(f.getName()+" "+this.pre); System.out.println(ans); } 我得到的结果是: file5.b

我需要一些帮助来解决这个问题- Java的startsWith()方法似乎不起作用

有人知道为什么会这样吗

方法:

public boolean check(File f) {
    boolean ans = (f.getName().startsWith(this.pre));
    System.out.println(f.getName()+"     "+this.pre);
    System.out.println(ans);
}
我得到的结果是:

file5.b     file 
false
Same_a.txt     file 
false
same_name_a.txt     file 
false
same_name_c.txt     file 
false
看起来它总是返回false

编辑: 你是对的,我误解了一些事情。。。感谢并为这次失礼感到抱歉。

试试这个:

public boolean check(File f) {
   return f.getName().replaceAll("\\s+","").startsWith(this.pre.replaceAll("\\s+",""));
}
这将删除
f.getName()
This.pre
中的所有空格,然后比较它们(不带空格)

也可能存在区分大小写的问题,因此您需要使用小写字母来表示所有字符

Java的startsWith()方法似乎不起作用

我必须告诉你,
startWith()
方法确实有效。它被(我猜)数百万Java程序员/程序使用。这种方法中出现真正错误的可能性非常小。您应该假设问题在您的代码中。。。除非你有确凿的证据证明不是


如果像这样的库方法似乎不起作用,那可能是因为您没有正确使用它,或者因为它实际上>>是
pre
的值,请尝试在字符串输出周围添加单引号。我打赌这些值周围有额外的空格。当我去编辑问题文本时,我注意到在您的输出行中,当您打印
this.pre
时,“file”一词后面总是有空格。您确定它的值是
“file”
,而不是
“file”
?另外,要养成习惯,以99.99%以上的时间,错误将出现在您的代码中,而不是Java标准库中的心态来处理这些问题。在标准库中将问题表述为一个bug几乎肯定会被否决。缺少诊断问题的最少信息。完成。仍然没有帮助:\n那么你在其他地方出错了。我几秒钟前刚试过。请显示更多的上下文,也许您的文件名中有一些不可见的字符。