I';我试图让字符串的前两个字符只在列表框中输出
本文关键字:字符 两个 输出 列表 字符串 | 更新日期: 2023-09-27 18:22:46
我正试图让字符串的前两个字符只在列表框上输出
string vin = "1GCHC24U83E614546";
string output = string.Format("{0} {1}",
(vin.Length - 16).ToString(),
(vin.Length - 15).ToString());
lsBox.Items.Add(output.ToString());
我做错了什么?当我想要"1G"时,它会输出"12"
因为vin
包含17个字符,所以vin.Length
等于17,vin.Length - 16
等于1
,vin.Length - 15
将是2
。
所以,你的代码相当于:
string output = string.Format("{0} {1}",
1.ToString(),
2.ToString());
这就是为什么字符串表示将是"1 2"
。不是"1 G"
。在这个过程中,你不会得到字符串的前两个字符,你会得到两个整数的字符串表示
您需要使用String.Substring(Int32, Int32)
过载,如:
string vin = "1GCHC24U83E614546";
string output = vin.Substring(0, 2); // output will be "1G"
如果你想在string.Format
中使用它们,你可以简单地做;
string output = string.Format("{0} {1}",
vin[0],
vin[1]); // output will be "1 G"
在您的情况下,以下答案可能不如Soner的答案实用,但了解一下可能会很有用,例如,如果您想玩字符串。格式化():
string vin = "1GCHC24U83E614546";
string output = string.Format("{0} {1}",
vin.First(), // Linq syntax to take first char
vin.Skip(1).First()); // take the second char