【发布时间】:2017-09-03 00:31:56
【问题描述】:
使用 .Substring 方法,我得到了一些奇怪的行为。比如我表达值的时候:
"(8) + (2)".Substring(3,6);
我得到的结果是:“ + (2)”
但是,当我将较低的索引简单地增加一时,如下所示:
"(8) + (2)".Substring(4,6);
我得到一个 ArgumentOutOfRangeException 抛出。
此外,它似乎没有抓住子字符串的正确部分,因为“+ (2)”的结果可能来自调用:
"(8) + (2)".Substring(3,8);
因为有空格,其中:
"(8) + (2)".Substring(3,6);
将改为:" + ("。
我在这里错过了什么?
【问题讨论】:
-
你的字符串是 9 个字符。 4+6 是 10。这超过了字符串的长度。
-
感谢所有回答的人。我很困惑为什么我对一个真正的问题投了这么多票——这不应该是一个供人们学习的知识共享网站吗?
-
另外,我敢肯定我不是第一个在从 Java 过渡到 C# 时遇到这个问题的学生,我相信这篇文章可以帮助未来的人们。然而,它的投票率仍然很低。
-
检查
String.SubString的文档也会很有帮助。您甚至可能已经注意到它的行为与文档中描述的完全一样。确实很奇怪的行为。