我需要将信息输入发送到一个表单的文本框中,以另一种形式发送到标签。我现在分开了,但是因为只有一个分割如果用户在文本框中输入多一个空格(比如说First,Middle,Last),第二个表单只会显示第一个和中间。我需要将它拆分两次,以防用户输入两个空格。
这是我目前的代码。
//Name Split
if (strTextBox.Contains (' '))
{
var fullname = strTextBox;
var names = fullname.Split(' ');
// perhaps TODO -- there could be a middle name/initial
label3.Text = names[0]; // first
label5.Text = names[1]; // middle initial
}
else //without this conditional if a user only enters a first name the app fails.
label3.Text = strTextBox;
我一直试图解决这个问题,但我似乎无法绕过它。这段代码编译得很好但是我不能让它显示姓氏。
这是我的代码:
//Name Split
if (strTextBox.Contains (' '))
{
var fullname = strTextBox;
var names = fullname.Split(' ');
// perhaps TODO -- there could be a middle name/initial
label3.Text = names[0]; // first
label5.Text = names[1]; // middle initial
}
else if (strTextBox.Contains (" " + " "))
{
var FN = strTextBox;
var N = FN.Split(' ');
label3.Text = N[0] + " " + N[1]; // first and middle
label5.Text = N[2]; // last name
}
else //incase only a first name is entered
label3.Text = strTextBox;
}
任何建议?
我已经将信息传递给下一个表单了,我只需要修复这个条件,这样我就可以得到所有三个名字,只要用户确实有第一个,中间的,最后一个。
答案 0 :(得分:4)
如果没有看到某些代码,这可能有点难以解释,但这里有。你需要做这样的事情。
var fullname = StringReceivedFromFirstForm;
var names = fullname.split(" ");
FirstNameLabel.Text = names[0];
SurnameLabel.Text = names[1];
希望这有帮助。
答案 1 :(得分:3)
听起来你有两个不同的问题。
string fullName = "john doe"; // "doe, john"
string firstName;
string lastName;
string[] parts = fullName.Split(new string[] {", "}, StringSplitOptions.None);
if (parts.Length == 1)
{
parts = fullName.Split(' ');
if (parts.Length == 1)
{
lastName = fullName;
firstName = "";
}
else
{
lastName = parts[1];
firstName = parts[0];
}
}
else
{
lastName = parts[0];
firstName = parts[1];
}
myForm2.SetName (firstName, lastName);
public class Form2 : Form
{
public void SetName (string firstName, string lastName)
{
lblFirst.Text = firstName;
lblLast.Text = lastName;
}
...
答案 2 :(得分:1)
string test = textbox.Text;
char[] splited = new char[]{' '};
foreach (string str in s.Split(splited ))
Console.WriteLine(str);