我有一个称为txbUserName的多行文本框的ASP.NET页面。然后我粘贴到文本框3名,他们是垂直对齐:如何拆分字符串回车与C#?
- 杰森
- 书童
- 卡伦
我希望能够以某种方式把名字和它们拆分为单独字符串,每当我检测到回车或新行。我在想,一个数组可能是要走的路。 任何想法?
谢谢。
我有一个称为txbUserName的多行文本框的ASP.NET页面。然后我粘贴到文本框3名,他们是垂直对齐:如何拆分字符串回车与C#?
我希望能够以某种方式把名字和它们拆分为单独字符串,每当我检测到回车或新行。我在想,一个数组可能是要走的路。 任何想法?
谢谢。
string[] result = input.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
这包括\ n和\ r \ n换行符类型,并删除您的用户可能输入的任何空行。
我测试使用下面的代码:
string test = "PersonA\nPersonB\r\nPersonC\n";
string[] result = test.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
Console.WriteLine(s);
而且它工作正常,分裂成三个字符串数组的条目“假面”,“PersonB”和“PersonC”。
看看在String.Split功能(不知道确切的语法的,在我面前没有IDE)。
string[] names = txbUserName.Text.Split(Environment.Newline);
更换任何\r\n
与\n
,然后分割使用\n
:
string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
为什么不使用'new char [] {'\ n'}'? – 2009-11-29 04:01:38
@Matthew:旧的习惯很难:P – 2009-11-29 04:03:07
@Matthew,@ o.k.w:甚至只是使用Split('\ n')',因为分隔符数组是一个'params'参数。 – LukeH 2009-11-29 10:14:33
using System.Text;
using System.Text.RegularExpressions;
protected void btnAction_Click(object sender, EventArgs e)
{
string value = txtDetails.Text;
char[] delimiter = new char[] { ';','[' };
string[] parts = value.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
txtFName.Text = parts[0].ToString();
txtLName.Text = parts[1].ToString();
txtAge.Text = parts[2].ToString();
txtDob.Text = parts[3].ToString();
}
}
试试这个:
message.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
工作,如果:
var message = "test 1\r\ntest 2";
或者
var message = "test 1\ntest 2";
或者
var message = "test 1\rtest 2";
有保证,这将通过\ -N,留下不先拆\ r \ n减少到用\ r? – spender 2009-11-29 03:47:31
我很确定它不会。我在我的应用程序中使用此行,它一次用于解析剪贴板(某种程度上用户需要Windows上的UNIX行结束符......)。但是,如果是这样,我想像颠倒字符串数组参数中的字符串可以解决这个问题。有谁知道如何生成这两个组合来测试? – jasonh 2009-11-29 03:50:10
@jasonh:“我很确定”......着名的遗言。 :) – 2009-11-29 03:56:04