簡體   English   中英

為什么contains()方法在Java中的非空字符串中找到空字符串

[英]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));

邏輯上(至少對我而言) ""不會出現在blablablablaindexOf("")表示它確實存在,為什么?

每個字符串都會出現一個空字符串。 具體而言,字符串的連續子集必須與空字符串匹配。 任何空子集都是連續的,任何字符串都有一個空字符串作為這樣的子集。

當且僅當此字符串包含指定的char值序列時,才返回true。

任何字符串,開頭,結尾和字符之間都存在一組空值char。 出於任何事情,你什么都不提取。 從一條物理的繩子/紗線我可以說它內部存在零長度部分。

如果contains返回true,則有一個可能的substring(調用以獲取要查找的字符串。 "aaa".substring(1,1)應返回"" ,但不要引用我,因為我沒有IDE此時此刻。

""出現在每個角色之間以及開始和結束之間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM