문자열 C #에서 줄 바꿈 바꾸기
C #의 문자열 내에서 줄 바꿈을 바꾸려면 어떻게해야합니까?
다음으로 교체 사용 Environment.NewLine
myString = myString.Replace(System.Environment.NewLine, "replacement text")
다른 게시물에서 언급했듯이 문자열이 다른 환경 (OS)에서 나온 경우 줄 바꾸기 문자 의 특정 환경 구현을 대체해야합니다 .
지금까지 게시 된 솔루션은 교체 만하 Environment.NewLine
거나 교체 문자열에 string.Replace
여러 번 호출되어 줄 바꿈이 포함되어 있으면 실패합니다 .
다음은 정규 표현식을 사용하여 세 번의 교체를 모두 한 번에 문자열로 전달하는 솔루션입니다. 이는 교체 문자열에 줄 바꿈이 안전하게 포함될 수 있음을 의미합니다.
string result = Regex.Replace(input, @"\r\n?|\n", replacementString);
The.Anyi.9의 답변을 확장하려면 일반적으로 사용 되는 다른 유형의 줄 바꿈 도 알고 있어야 합니다 . 파일의 출처에 따라 모든 대안을 찾아야 할 수도 있습니다 ...
string replaceWith = "";
string removedBreaks = Line.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
당신이 갈 것입니다 ...
문자열에 줄 바꿈을 삽입하고 싶지만 문자열에서 줄 바꿈을 모두 제거하지 않으려는 경우 Environment.Newline을 사용합니다.
플랫폼에 따라 다른 유형의 개행을 가질 수 있지만 동일한 플랫폼 내에서도 종종 다른 유형의 개행이 사용됩니다. 특히 파일 형식과 프로토콜을 다룰 때.
string ReplaceNewlines(string blockOfText, string replaceWith)
{
return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}
코드가 다른 환경에서 실행되어야하는 경우 Environment.NewLine
상수 newline
는 특정 환경에서 사용 되기 때문에 상수를 사용하는 것이 좋습니다.
line = line.Replace(Environment.NewLine, "newLineReplacement");
그러나 다른 시스템에서 생성 된 파일에서 텍스트를 가져 오면 정답이 아닐 수 있으며 다른 시스템에서 사용되는 줄 바꿈 상수로 바꾸어야합니다. 일반적으로 \n
또는 \r\n
입니다.
replace는 문자열에서 교체를 수행하지 않지만 문자가 교체 된 새 문자열을 반환합니다. 다음은 줄 바꿈을 제거합니다 (바꾸지 않음). @Brian R. Bondy의 방법을 확장 방법으로 싸서 다른 것으로 대체하는 경우 사용합니다. Replace 또는 제공된 확장 메서드를 호출하기 전에 먼저 null 값을 확인해야합니다.
string line = ...
line = line.Replace( "\r", "").Replace( "\n", "" );
확장 방법으로 :
public static class StringExtensions
{
public static string RemoveLineBreaks( this string lines )
{
return lines.Replace( "\r", "").Replace( "\n", "" );
}
public static string ReplaceLineBreaks( this string lines, string replacement )
{
return lines.Replace( "\r\n", replacement )
.Replace( "\r", replacement )
.Replace( "\n", replacement );
}
}
가능한 모든 줄 바꿈 방법 (Windows, Mac 및 Unix)을 바꾸려면 다음을 사용해야합니다.
string.Replace("\r\n", "\n").Replace('\r', '\n').Replace('\n', 'replacement');
이 순서대로 줄 끝 문자 조합을 찾을 때 줄 바꿈을 추가하지 않도록하십시오.
나는 대체하는 데 필요한 \r\n
실제 캐리지 리턴과 라인 피드와 교체 \t
실제 탭. 그래서 나는 다음을 생각해 냈습니다.
public string Transform(string data)
{
string result = data;
char cr = (char)13;
char lf = (char)10;
char tab = (char)9;
result = result.Replace("\\r", cr.ToString());
result = result.Replace("\\n", lf.ToString());
result = result.Replace("\\t", tab.ToString());
return result;
}
왜 모두?
string ReplacementString = "";
Regex.Replace(strin.Replace(System.Environment.NewLine, ReplacementString), @"(\r\n?|\n)", ReplacementString);
참고 : 교체 strin
하여 입력 문자열의 이름으로.
var answer = Regex.Replace(value, "(\n|\r)+", replacementString);
새 줄을 "정리"하려면 정규식을 사용하는 flamebaud 주석 @"[\r\n]+"
이 최선의 선택입니다.
using System;
using System.Text.RegularExpressions;
class MainClass {
public static void Main (string[] args) {
string str = "AAA\r\nBBB\r\n\r\n\r\nCCC\r\r\rDDD\n\n\nEEE";
Console.WriteLine (str.Replace(System.Environment.NewLine, "-"));
/* Result:
AAA
-BBB
-
-
-CCC
DDD---EEE
*/
Console.WriteLine (Regex.Replace(str, @"\r\n?|\n", "-"));
// Result:
// AAA-BBB---CCC---DDD---EEE
Console.WriteLine (Regex.Replace(str, @"[\r\n]+", "-"));
// Result:
// AAA-BBB-CCC-DDD-EEE
}
}
.Replace () 메소드를 사용하십시오.
Line.Replace("\n", "whatever you want to replace with");
줄 바꿈을 안전하게 대체하는 가장 좋은 방법은
yourString.Replace("\r\n","\n") //handling windows linebreaks
.Replace("\r","\n") //handling mac linebreaks
줄 바꿈으로 \ n 만 (예 : 줄 바꿈) 문자열을 생성해야합니다. 이 코드는 혼합 줄 바꿈을 수정하는 데 유용합니다.
줄 바꿈은 \n
, \r
및 로 구분할 수 있으므로 \r\n
먼저 \r
와 \r\n
를 바꾸고 \n
데이터 문자열 만 나눕니다.
다음 줄은 parseCSV
메소드 로 이동해야합니다 .
function parseCSV(data) {
//alert(data);
//replace UNIX new lines
data = data.replace(/\r\n/g, "\n");
//replace MAC new lines
data = data.replace(/\r/g, "\n");
//split into rows
var rows = data.split("\n");
}
string s = Regex.Replace(source_string, "\n", "\r\n");
또는
string s = Regex.Replace(source_string, "\r\n", "\n");
당신이 가고 싶은 방법에 따라.
도움이되기를 바랍니다.
또 다른 옵션은 StringReader
해당 문자열을 초과하는 것입니다. 리더 .ReadLine()
에서 루프를 수행하십시오. 그런 다음 구분 기호가 무엇이든 (일관 적이거나 일관되지 않은) 구분선이 있습니다. 이를 통해 원하는대로 진행할 수 있습니다. 한 가지 가능성은 a를 사용 StringBuilder
하고 호출 .AppendLine
하는 것입니다.
장점은 "줄 바꿈"을 구성하는 프레임 워크를 프레임 워크에서 결정하게하는 것입니다.
줄 바꿈 만 바꾸려면 :
var input = @"sdfhlu \r\n sdkuidfs\r\ndfgdgfd";
var match = @"[\\ ]+";
var replaceWith = " ";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input.Replace(@"\n", replaceWith).Replace(@"\r", replaceWith), match, replaceWith);
Console.WriteLine("output: " + x);
줄 바꿈, 탭 및 공백을 바꾸려면 다음을 수행하십시오.
var input = @"sdfhlusdkuidfs\r\ndfgdgfd";
var match = @"[\\s]+";
var replaceWith = "";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input, match, replaceWith);
Console.WriteLine("output: " + x);
참고 URL : https://stackoverflow.com/questions/238002/replace-line-breaks-in-a-string-c-sharp
'development' 카테고리의 다른 글
www가 아닌 www로 일반 htaccess 리디렉션 (0) | 2020.02.14 |
---|---|
Mac OS X의 터미널에서 이전 출력을 지우는 방법은 무엇입니까? (0) | 2020.02.14 |
ImportError : 모듈 이름이없는 요청 (0) | 2020.02.13 |
MongoDB 관계 : 포함 또는 참조? (0) | 2020.02.13 |
더 빠름 : 스택 할당 또는 힙 할당 (0) | 2020.02.13 |