我的字符串值在下面,
string value = "034 TH4493";
在第一面,
var result = value.Substring(2,value.Length - 2);
在第二方面,
var result2 = value.Substring(0, 2);
result1 必须
"34TH4493"
result2 必须
34
然而它不适合我,我无法解决问题。我是否需要使用其他解决方案或上述代码中缺少的内容?
感谢。
答案 0 :(得分:1)
string v2 = value.TrimStart('0');
var result1 = v2.Replace(" ","");
var result2 = v2.Split(' ')[0];
答案 1 :(得分:1)
var result = value.Substring(2, value.Length - 2);
你实际上已经告诉它从索引位置2(“034 TH4493”中的4)开始,然后添加与“034 TH4493”(10,空间计数)减去2的长度一样多的字符,等于8,因此:“4 TH4493”。
你想要的是告诉它通过替换它来删除空间,然后从索引1开始,以便丢弃索引0处的“0”,然后计算除了你之外的所有其他字符忽略:
var result = value.Replace(" ", "").Substring(1, value.Length - 2); // -2 because "value" holds both the space and the first 0, rather than just the 0
正如您现在可能想象的那样,当您真正想要var result2 = value.Substring(0, 2);
时,var result2 = value.Substring(1, 2)
实际上正在抓取“03”(索引0,两个字符)。
或者,你可以拆分字符串,然后抓住你想要的任何东西:
var result = value.Replace(" ", "").Substring(1, value.Length - 2);
var values = value.Split(' '); // Split at the space character
var result2 = values[0];
// or
var result2 = value.Split(' ')[0];
在这些情况下,你不确定发生了什么,它有助于添加断点(F9键和默认设置),因此当达到该行代码时应用程序暂停,你可以探索当前将光标悬停在变量上,或选中“Locals”选项卡。
编辑:我结束了你想要的结果和结果2的值,现在应该修复......
答案 2 :(得分:0)
你可以找到它们;
var result1 = value.Substring(1).Replace(" ", "");
var result2 = value.Substring(1, 2);
需要更换空白区域,因为它不会神奇地消失。如果您希望将"34TH4493"
代替34TH4493
作为字符串,则可以将其格式化为;
result1 = string.Format("\"{0}\"", result1);
答案 3 :(得分:0)
对于字符串,您必须考虑第一个字符的索引 零而不是1
。
第一种情况
所以第一个结果从第3个字符开始,但是你想从第二个字符到起始索引将是1,结束索引将比长度小1。
var result = value.Substring(1,value.Length - 1);
第二种情况
第二个你从零开始,并希望从第二个字符开始,所以开始索引应该是1
而不是0
。
var result2 = value.Substring(1, 2);
您必须阅读Substring的文档,其中startIndex是"此实例中子字符串从零开始的字符位置"