一串C#中的子字符串工作不正常

本文关键字:字符串 工作 不正常 一串 | 更新日期: 2023-09-27 18:29:24

我面临字符串问题。C#中的Substring()

我的申请样本如下。

string myString = " Jun30/13 DU SJ9802";
List<string> list = new List<string>();
list.Add(myString.Substring(0,15));
list.Add(myString.Substring(0, 10));
list.Add(myString.Substring(9, 3));
list.Add(myString.Substring(9, 4));

当我看到结果时,它显示为

myString.Substring(0,15)

"2013年6月30日DU SJ"

myString.Substring(0,10)

"2013年6月30日"

myString.Substring(9,3)

"DU"

myString.Substring(9,4)

"DU"

它显示了myString.Substring(9,3)myString.Ssubstring(9,4)误子字符串。正确的子字符串应该是"DU"answers"DU S"

有什么想法吗?

调试图像:https://i.stack.imgur.com/TRjC9.png

一串C#中的子字符串工作不正常

它实际上工作正常。字符串上有一个前导空格,因此第九个索引是刚好在DU之前的空格。考虑以下图表:

 Jun30/13 DU SJ9802
0123456789

您从第九个索引开始,这是一个的空格。

9,3"从指定的字符位置开始并具有指定的长度"。

在您的情况下,如果您查看字符串:

" Jun30/13 DU SJ9802"
 0123456789

位置9是空间,所以" DU"应该是9,4" DU "应该是CCD_7,这正是你得到的。

我相信您忘记了字符索引以0开头,而不是以1开头。