根据我的理解,下面的程序应该打印ViewBag
作为输出。
但是,当我运行此程序时,我得到0,0
作为输出。
1,0
请帮助我了解这里发生了什么?
答案 0 :(得分:5)
相关代码
Choose color for unselected item
答案 1 :(得分:5)
在第一种情况下,由于根本没有匹配,因此将按照Javadoc的这一部分返回字符串:
如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。
至于你的第二种情况,如果发生拆分,将删除尾随的空字符串:
如果 n 为零,则模式将被应用尽可能多次,数组可以具有任何长度,尾随空字符串将被丢弃。
(强调我的)
来源:Javadoc
答案 2 :(得分:4)
正如文件https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String,%20int)
中所述“如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即此字符串”
由于输入不包含正则表达式,即“;”它返回整个字符串。
答案 3 :(得分:3)
你找到了一个很酷的边缘案例: 如果字符串不包含char,则将其拆分为仅返回包含该字符串的数组
如果分隔字符在字符串中,那么您将获得一个包含所有分割的数组,但空字符串除外。
所以在第二种情况下,结果应该是一个带有两个空字符串的数组,但是split函数会删除它们。在第一种情况下,由于拆分实际上没有拆分任何东西,并且它不会删除任何东西。