가능한 중복 :
여러 공간을 C #의 단일 공간으로 바꾸려면 어떻게합니까?
문자열에서 공백을 제거하는 가장 우아한 방법은 무엇입니까?" a<many spaces>b c "
으로"a b c"
. 따라서 반복되는 공백이 하나의 공간으로 축소됩니다.
너는 사용할 수있어.Regex
이것을 위해 :
Regex.Replace(my_string, @"\s+", " ").Trim();
정규식 승 / 정규식없는 솔루션 :
char[] delimiters = new char[] { ' '}; // or null for 'all whitespace'
string[] parts = txt.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
string result = String.Join(" ", parts);
\s
공백으로 분류 된 다른 문자가 아닌 공백 (U + 0020) 문자 만 제거합니다. 이것은 Q의 기준에 부합하지만 실제로는 그러한 요구가 탭 등에도 적용될 것으로 기대합니다. - Richarddelimiters = null
~에 해당\s
- Henk HoltermanTrim()
믹스로하지만 모든 것을 할 정규식을 사용합니다. (나는 그다지 관심이 없다. 나는 오늘 몇 시간 전에 200 명의 담당자를 봉쇄했다 ...) - Lucero
Regex.Replace(my_string, @"^\s+|\s+$|(\s)\s+", "$1");
.Trim()
훨씬 더 간결하므로 유지 관리가 더 쉽습니다. (나는 downvoting하지 않는다. -이 버전할 수있다약간의 상황에서 선호 될 수 있습니다. - Izkata
사용Trim
문자열의 처음과 끝에서 공백을 제거하는 메소드와 여러 공백을 줄이는 정규 표현식 :
s = Regex.Replace(s.Trim(), @"\s{2,}", " ");
너는 할 수있어.
Regex.Replace(str, "\\s+", " ").Trim()
Regex rgx = new Regex("\\s+");
string str;
str=Console.ReadLine();
str=rgx.Replace(str," ");
str = str.Trim();
Console.WriteLine(str);
정규식을 사용하십시오.
"( ){2,}" //Matches any sequence of spaces, with at least 2 of them
그것을 사용하여 모든 성냥을 ""(으)로 대체하십시오.
나는 C #으로 해본 적이 없으며 문서가 말하는 것을 알아 내기 위해 더 많은 시간이 필요하므로 직접 찾아야합니다. 미안 해요.
정규식 사용
String test = " a b c ";
test = Regex.Replace(test,@"\s{2,}"," ");
test = test.Trim();
이 코드는 2 개 이상의 공백을 하나의 공백으로 대체합니다.Regex
처음부터 끝까지 제거하십시오.
\s{2,}
또는\s\s+
또는\s+
임의의 수의 공백을 공백으로 대체하려는 경우 (이후\s
탭과 같은 문자를 포함하여 모든 공백과 일치합니다. 결과는 다릅니다.) - Lucero
Regex.Replace(str, "[\s]+"," ")
그런 다음 Trim을 호출하여 선행 및 후행 공백을 없앱니다.
.Trim()
그에 대한. :) - naveen