[英]Why does contains() method find empty string in non-empty string in Java
這是我在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));
邏輯上(至少對我而言) ""
不會出現在blablablabla
但indexOf("")
表示它確實存在,為什么?
每個字符串都會出現一個空字符串。 具體而言,字符串的連續子集必須與空字符串匹配。 任何空子集都是連續的,任何字符串都有一個空字符串作為這樣的子集。
當且僅當此字符串包含指定的char值序列時,才返回true。
任何字符串,開頭,結尾和字符之間都存在一組空值char。 出於任何事情,你什么都不提取。 從一條物理的繩子/紗線我可以說它內部存在零長度部分。
如果contains返回true,則有一個可能的substring(
調用以獲取要查找的字符串。 "aaa".substring(1,1)
應返回""
,但不要引用我,因為我沒有IDE此時此刻。
""
出現在每個角色之間以及開始和結束之間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.