为什么在Java中字符串以“”开头?

吉米:

可能重复:
为什么“ abcd” .StartsWith(“”)返回true?

通过一些代码进行调试时,我发现验证的特定部分是使用.startsWith()String类上的方法来检查String是否以空白字符开头

考虑以下内容:

public static void main(String args[])
{

    String s = "Hello";
    if (s.startsWith(""))
    {
        System.out.println("It does");
    }

}

打印出来 It does

我的问题是,为什么字符串以空白字符开头?我以为字符串实际上是字符数组,但是在这种情况下,我本以为第一个字符是H

谁能解释一下?

卡梅伦(Cameron):

“”是一个空字符串,不包含任何字符。没有“空字符”,除非您是指空格或空字符,都不是空字符串。

您可以将字符串视为以无数个空字符串开头,就像您可以将数字视为以无数个前导零开头一样,而无需更改其含义。

1 = ...00001
"foo" = ... + "" + "" + "" + "foo"

字符串也以无数个空字符串结尾(就像带零的十进制数字一样):

1 = 001.000000...
"foo" = "foo" + "" + "" + "" + ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在Java 8中split有时会在结果数组的开头删除空字符串?

为什么 MongoDB 连接字符串以 mongodb:\\ 开头

为什么使用Java在文件的开头和结尾追加字符串后,xml文件无法正确对齐?

子字符串,以char开头,后跟java中的数字

为什么正则表达式中的 ^s$ 不匹配“以 s 开头,以 s 结尾”这样的字符串?

检测python字符串以什么开头

删除开头部分字符串,最后在java中删除部分字符串

为什么科特林的串插串联Java中的字符串?

为什么Java字符串比较在Java 15和Java 11中表现不同?

为什么Java字符串比较在Java 15和Java 11中表现不同?

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

为什么在尝试在 Java 中拆分字符串时出现空字符串?以及如何修复它?

Java拆分以空格开头的字符串

为什么不计算字符串中的字符?

为什么不能计算字符串中的管道字符?

为什么字符串* RECURSION *出现在输出中,并且每个包含的数组名称都在$ GLOBALS数组输出中以下划线字符开头?

R-如果以模式开头的'regexpr()'为什么找不到字符串?

为什么在使用 QString::right 的字符串开头省略逗号?

我的代码为什么不编译检查字符串是否以元音开头的代码?

为什么split函数在此字符串的开头不返回null?

从字符串中检索以$$,$开头的单词

为什么Java中的字符串比较(CompareTo)比C#中的更快?

为什么Java中的这种反向字符串逻辑在python中不起作用?

如果==比较Java中的引用,为什么使用这些字符串将其评估为true?

为什么铸造或泛型的使用需要在Java中添加字符串到的ArrayList?

为什么String引用变量在Java中存储字符串而不是地址?

为什么没有从此Java流中过滤出空字符串?

为什么使用SimpleDateFormat从字符串中解析日期时得到错误的结果?(Java)

为什么在开始和结束字符串之间删除在Java中无法正常工作?