我有一个存储在ArrayList中的字符串列表。我希望每次出现&#39 ;;'将它们分开。问题是,每当我尝试使用MessageBox显示它们时,都会显示多余的空间或不必要的值。
示例输入(变量= a):
Arial;16 pt;None;None;None;None;None;None;FF0000;None;100;Normal;None;Normal;
下面是我用来拆分它们的一行代码:
string[] display_document = (a[0] + "").Split(';');
要显示的代码:
foreach (object doc_properties in display_document)
{
TextBox aa = new TextBox();
aa.Font = new Font(aa.Font.FontFamily, 9);
aa.Text = doc_properties.ToString();
aa.Location = new Point(pointX, pointY);
aa.Size = new System.Drawing.Size(80, 25);
aa.ReadOnly = true;
doc_panel.Controls.Add(aa);
doc_panel.Show();
pointY += 30;
}
如何删除该分号的最后一次出现?我真的需要帮助解决这个问题。非常感谢你的帮助。
答案 0 :(得分:0)
最简单的方法是检查输入是否以“;”结尾在拆分它之前,如果是这样,删除最后一个字符?示例代码:
string a = "Arial;16 pt;None;None;None;None;None;None;FF0000;None;100;Normal;None;Normal;";
if (a.EndsWith(";"))
{
a = a.Remove(a.LastIndexOf(";"));
}
//Proceed with split
答案 1 :(得分:0)
如果没有添加空格字符且输入为字符串,则拆分不会打印最后一个分号。
我不知道为什么你更喜欢数组列表(可能是这种奇怪行为的原因)但是如果你可以将你的输入用作字符串,你可以试试
string a = "Arial;16pt;None;None;None;None;None;None;FF0000;None;100;Normal;None;Normal;";
string[] display_document = a.Split(';');
foreach (object doc_properties in display_document)
{
//The rest of your code
}