C #으로 캐리지 리턴에서 문자열을 분할하는 방법은 무엇입니까?
txbUserName이라는 여러 줄 텍스트 상자가있는 ASP.NET 페이지가 있습니다. 그런 다음 텍스트 상자 3 이름에 붙여 넣으면 세로로 정렬됩니다.
- 제이슨
- 아미
- 여자 이름
캐리지 리턴이나 새 줄을 감지 할 때마다 이름을 가져 와서 별도의 문자열로 나눌 수 있기를 원합니다. 나는 배열이 갈 길이 될 것이라고 생각하고 있습니다. 어떤 아이디어?
감사합니다.
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);
그리고 "PersonA", "PersonB"및 "PersonC"항목이있는 세 개의 문자열 배열로 분할되어 올바르게 작동합니다.
어떤 교체 \r\n
와 함께 \n
, 다음 사용하여 분할을 \n
:
string[] arr = txbUserName.Text.Replace("\r\n", "\n").Split("\n".ToCharArray());
String.Split 함수를 살펴보십시오 (정확한 구문이 확실하지 않고 IDE가 없음).
string[] names = txbUserName.Text.Split(Environment.Newline);
mystring.Split(new Char[] { '\n' })
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";
무엇을하고 싶은지에 따라 다릅니다. 작은 목록에는 과도하지만 큰 문자열에는 메모리 효율성이 더 좋은 또 다른 옵션은 StringReader
클래스를 사용하고 열거자를 사용하는 것입니다.
IEnumerable<string> GetNextString(string input)
{
using (var sr = new StringReader(input))
{
string s;
while ((s = sr.ReadLine()) != null)
{
yield return s;
}
}
}
이것은 \n
및 \r\n
줄 끝을 모두 지원합니다 . 그것이를 반환으로 IEnumerable
당신은 그것을 처리 할 수 있습니다 foreach
, 또는 표준 LINQ 확장의 (사용 ToList()
, ToArray()
, Where
, 등).
예를 들어 foreach
:
var ss = "Hello\nworld\r\ntwo bags\r\nsugar";
foreach (var s in GetNextString(ss))
{
Console.WriteLine("==> {0}", s);
}
참조 URL : https://stackoverflow.com/questions/1814562/how-to-split-strings-on-carriage-return-with-c
'Nice programing' 카테고리의 다른 글
Sidekiq가 대기열을 처리하지 않음 (0) | 2020.12.28 |
---|---|
python과 numpy를 사용한 경사 하강 법 (0) | 2020.12.28 |
Heroku vs EngineYard : 어느 것이 더 가치가 있습니까? (0) | 2020.12.28 |
다음 개발자가 코드를 더 쉽게 이해할 수 있도록하려면 어떻게해야합니까? (0) | 2020.12.28 |
SQL 테이블의 기본 키 자동 증가 (0) | 2020.12.28 |