这是我在Java String.indexOf()和String.contains()方法中发现的奇怪行为.如果我有一个非空字符串说blablabla,我试图在其中寻找一个空字符串,它总是返回,true而我希望它返回false.
所以基本上,为什么下面的代码返回true和0?
String testThis = "";
String fileName = "blablablabla";
System.out.println(fileName.contains(testThis));
System.out.println(fileName.indexOf(testThis));
Run Code Online (Sandbox Code Playgroud)
逻辑上(至少对我来说)""并没有发生,blablablabla但是indexOf("")说它确实如此,为什么?
ζ--*_*ζ-- 31
每个字符串都会出现一个空字符串.具体而言,字符串的连续子集必须与空字符串匹配.任何空子集都是连续的,任何字符串都有一个空字符串作为这样的子集.
当且仅当此字符串包含指定的char值序列时,才返回true.
任何字符串,开头,结尾和字符之间都存在一组空值char.出于任何事情,你什么都不提取.从一条物理的绳子/纱线我可以说它内部存在零长度部分.
如果contains返回true,则可能需要substring(调用以获取要查找的字符串."aaa".substring(1,1)应该返回"",但不要引用我,因为我目前没有IDE.
| 归档时间: |
|
| 查看次数: |
9191 次 |
| 最近记录: |