以下简单的Java代码只使用该startsWith()方法.
package startwithdemo;
final public class Main
{
public static void main(String[] args)
{
System.out.println("My String".startsWith("M"));
System.out.println("My String".startsWith("My"));
System.out.println("My String".startsWith(""));
}
}
Run Code Online (Sandbox Code Playgroud)
它显示true在所有情况下.前两种情况很明显,但在最后一种情况下(使用空字符串),它正在返回true.怎么样?
因为这是API的设计方式,请参阅javadoc.
但更严重的是,一个类比可以是看集合.让我们假设一个字符串是一组字符,然后空字符串是空集.在集合论中,空集始终是任何集合的一部分.
为什么空集是每个集的子集?(取自这里)
当且仅当A的每个元素也是B的元素时,集合A是集合B的子集.如果A是空集合,则A没有元素,因此其所有元素(没有)属于B无论我们处理什么样的B集合.也就是说,空集是每个集的子集.
理解它的另一种方法是看交叉点.两组的交集是每个原始集的子集.因此,如果{}是空集,而A是任何集,则{}相交A是{},这意味着{}是A的子集,{}是{}的子集.
你可以通过矛盾来证明这一点.假设您有空集{}和集A.基于定义,{}是A的子集,除非{}中的某个元素不在A中.所以如果{}不是A的子集然后在{}中有一个元素.但{}没有元素,因此这是一个矛盾,因此集合{}必须是A的子集.
| 归档时间: |
|
| 查看次数: |
4775 次 |
| 最近记录: |