왜 차르가 없지?문자열처럼 비어 있습니다.비어있나요?
이유가 있나요?빈 문자를 많이 사용해야 한다면 빈 문자열을 많이 사용할 때와 같은 상황이 되기 때문입니다.
편집: 이 사용 이유는 다음과 같습니다.
myString.Replace ('c', '')
myString에서 모든 c 인스턴스를 제거합니다.
★★★★★★★★★★★★★★★★★★★★★★★★★★ 것은 가가 the the the the the the입니다.'\0' 「 「null」문자.스트링 리터럴에 포함시키거나 직접 매우 쉽게 표현할 수 있는데 왜 별도의 필드를 원합니까?마찬가지로 '혼란하기 와 '혼란하기 쉽다'는."" ★★★★★★★★★★★★★★★★★」" "'는 '인수'에되지 않습니다'\0'.
어디에 사용하고 싶은지, 왜 그것이 좋다고 생각하는지를 예를 들어 주시면 도움이 될 것 같습니다.
쓰였습니다.
myString.Replace ('c', '')따라서 모든 인스턴스를 삭제합니다.'c'myString에서 가져옵니다.
문자열에서 특정 문자를 삭제하려면 문자열 오버로드를 사용할 수 있습니다.
myString = myString.Replace ("c", String.Empty);
당신의 진술
myString.Replace ('c', '\0')
문자를 제거하지 않습니다.그냥 대체하면 됩니다.'\0'(End-Of-String, EOS), 양양양 、 ( ( ( ( ( ( 。은 EOS가 했을 때 될 수 에서는 EOS가 정지될 수 있습니다.NET net net net른 른른 른른 net net net net 。 좋다'\0'네, 네, 네.
문자는 문자열과 달리 크기가 고정된 개별적인 것입니다.문자열은 실제로 문자 컨테이너입니다.
그래서, Char.공허는 그런 맥락에서 의미가 없습니다.숯이 있으면 비어있지 않아요.
빈 글자는 없어요.항상 뭔가 들어있어요.심지어 '0'도 문자입니다.
Char.MinValue '\0과 같이 동작합니다.\0'은 '\0'으로 동작합니다. '아주머니'와는해 주세요.String.Empty.
null 가능한 문자를 사용할 수 있습니다.
char? c
문자열 전체가 필요하지 않은 경우 지연된 실행을 활용할 수 있습니다.
public static class StringExtensions
{
public static IEnumerable<char> RemoveChar(this IEnumerable<char> originalString, char removingChar)
{
return originalString.Where(@char => @char != removingChar);
}
}
여러 문자를 조합할 수도 있습니다.
string veryLongText = "abcdefghijk...";
IEnumerable<char> firstFiveCharsWithoutCsAndDs = veryLongText
.RemoveChar('c')
.RemoveChar('d')
.Take(5);
...첫 번째 7글자만 평가됩니다.
편집: 또는 더 나은 방법:
public static class StringExtensions
{
public static IEnumerable<char> RemoveChars(this IEnumerable<char> originalString,
params char[] removingChars)
{
return originalString.Except(removingChars);
}
}
및 그 용도:
var veryLongText = "abcdefghijk...";
IEnumerable<char> firstFiveCharsWithoutCsAndDs = veryLongText
.RemoveChars('c', 'd')
.Take(5)
.ToArray(); //to prevent multiple execution of "RemoveChars"
myString = myString.Replace('c'.ToString(), "");
네, 이것은 글자를 삭제하는 데 있어서 특별히 우아한 것은 아닙니다.이후로입니다.Replace 메서드에 문자열 매개 변수가 사용되는 오버로드가 있습니다.그러나 이것은 캐리지 리턴, 라인 피드, 탭 등을 제거하는 데 도움이 됩니다.다음 예제에서는 탭 문자를 삭제합니다.
myString = myString.Replace('\t'.ToString(), "");
설정을 나타냅니다.char 쓰면 요.
default(char)
와 같다char.MinValue, 그것은 곧 '먹다'와 같습니다.\0네, 네, 네, 네.
로 '아까운데', '아까운데 없다'가 없어요.int.Empty 수 은 비워둘수 없습니다. 컨테이너는 비워 둘 수 있지만 스칼라 값은 비워 둘 수 없습니다.을 0(빈칸이 아님)을 합니다.'\0'만약 당신이 말한다면null , 을 사용합니다.null
char는 값 유형이기 때문에 값은 null일 수 없습니다(Nullable 컨테이너로 랩되지 않은 경우).
null일 수 없기 때문에에는 몇 가지 숫자 코드가 포함되어 있으며 각 코드는 몇 가지 문자에 매핑되어 있습니다.
첫 번째 질문에 대한 답변은 없습니다.그러나 특정 문제에 대해서는 문자 대신 문자열을 사용할 수 있습니다.
myString.Replace("c", "")
그렇게 하고 싶지 않은 이유가 있나요?
String의 Replace(String, String) 오버로드 문서를 참조해 주십시오.두 번째 인수가 다음 인수의 경우 주석 섹션에서 확인할 수 있습니다.null이치노 그냥 ''를 쓰면 '''가 돼요''는''가 됩니다.myString = myString.Replace("c", null); 삭제가 .c현악기 안에.
삭제할 문자를 제외하고 문자열 문자를 문자별로 재구성할 수도 있습니다.
이를 위한 확장 방법은 다음과 같습니다.
static public string RemoveAny(this string s, string charsToRemove)
{
var result = "";
foreach (var c in s)
if (charsToRemove.Contains(c))
continue;
else
result += c;
return result;
}
매끄럽거나 화려하지는 않지만 잘 작동합니다.
다음과 같이 사용:
string newString = "My_String".RemoveAny("_"); //yields "MyString"
꽤 오래된 것은 알지만, 최근 파일 이름을 안전하게 하기 위해 여러 번 교체해야 하는 문제가 발생했습니다.먼저, 최신 정보입니다.NET 문자열Replace 함수 null은 빈 문자와 동일합니다.그렇다고는 해도, 에는 없는 것이 있습니다.넷은 어레이 내의 임의의 문자를 원하는 문자로 대체하는 단순한 치환입니다.아래 코드를 자유롭게 참조해 주십시오(테스트를 위해 LinqPad에서 실행).
// LinqPad .ReplaceAll and SafeFileName
void Main()
{
("a:B:C").Replace(":", "_").Dump(); // can only replace 1 character for one character => a_B_C
("a:B:C").Replace(":", null).Dump(); // null replaces with empty => aBC
("a:B*C").Replace(":", null).Replace("*",null).Dump(); // Have to chain for multiples
// Need a ReplaceAll, so I don't have to chain calls
("abc/123.txt").SafeFileName().Dump();
("abc/1/2/3.txt").SafeFileName().Dump();
("a:bc/1/2/3.txt").SafeFileName().Dump();
("a:bc/1/2/3.txt").SafeFileName('_').Dump();
//("abc/123").SafeFileName(':').Dump(); // Throws exception as expected
}
static class StringExtensions
{
public static string SafeFileName(this string value, char? replacement = null)
{
return value.ReplaceAll(replacement, ':','*','?','"','<','>', '|', '/', '\\');
}
public static string ReplaceAll(this string value, char? replacement, params char[] charsToGo){
if(replacement.HasValue == false){
return string.Join("", value.AsEnumerable().Where(x => charsToGo.Contains(x) == false));
}
else{
if(charsToGo.Contains(replacement.Value)){
throw new ArgumentException(string.Format("Replacement '{0}' is invalid. ", replacement), "replacement");
}
return string.Join("", value.AsEnumerable().Select(x => charsToGo.Contains(x) == true ? replacement : x));
}
}
}
특정 조건을 만족하는 문자를 삭제할 경우 다음을 사용할 수 있습니다.
string s = "SoMEthInG";
s = new string(s.Where(c => char.IsUpper(c)).ToArray());
(문자열에는 대문자만 남습니다).
, 트, 트, 사, 사, 사, 습, 습, 습, 습, 습, 습, 습, 습, 습, 습, 습, in, in, in, in,IEnumerable<char>를 변경하여 위와 같이 문자열로 되돌립니다.
하면 표현으로 특정 수만 아니라 람다 표현을 .c => c != 't'.
C# 언어의 경우, 다음과 같은 것은 그다지 의미가 없을 수 있습니다.그리고 이것은 질문에 대한 직접적인 답이 아닙니다.하지만 다음은 제 비즈니스 시나리오 중 하나에서 수행한 작업입니다.
char? myCharFromUI = Convert.ToChar(" ");
string myStringForDatabaseInsert = myCharFromUI.ToString().Trim();
if (String.IsNullOrEmpty(myStringForDatabaseInsert.Trim()))
{
Console.Write("Success");
}
그null그리고.white space제 프로젝트에서 다른 비즈니스 흐름이 있었습니다.데이터베이스에 삽입하는 동안 삽입해야 합니다.empty string공백인 경우 데이터베이스로 이동합니다.
문자열의 빈 문자를 제거하려면 다음 작업을 수행합니다.원하는 데이터 유형 표현으로 변환하기만 하면 됩니다.
private void button1_Click(object sender, EventArgs e)
{
Int32 i;
String name;
Int32[] array_number = new int[100];
name = "1 3 5 17 8 9 6";
name = name.Replace(' ', 'x');
char[] chr = name.ToCharArray();
for (i = 0; i < name.Length; i++)
{
if ((chr[i] != 'x'))
{
array_number[i] = Convert.ToInt32(chr[i].ToString());
MessageBox.Show(array_number[i].ToString());
}
}
}
방법은 다음과 같습니다.myString치환(')'ToString(), "");
Microsoft가 파일 시작(최소한 XML)에 추가하는 마법의 문자인 BOM은 어떻습니까?
public static string QuitEscChars(this string s)
{
return s.Replace(((char)27).ToString(), "");
}
사용하다
myString.Replace ("c", "")
문자열에서 문자를 제거하는 가장 쉬운 방법은 잘라내는 것입니다.
cl = cl.Trim(' ');
문자열의 모든 공백을 제거합니다.
언급URL : https://stackoverflow.com/questions/3670505/why-is-there-no-char-empty-like-string-empty
'programing' 카테고리의 다른 글
| MySQL의 저장 프로시저 내에 선택적 매개 변수를 작성하시겠습니까? (0) | 2023.09.02 |
|---|---|
| 목록 상자에서 텍스트 상자 항목을 선택해도 목록 상자의 선택한 항목은 변경되지 않습니다. (0) | 2023.04.20 |
| VBA를 사용하여 Range를 사용하여 전체 Excel 시트를 선택하려면 어떻게 해야 합니까? (0) | 2023.04.20 |
| SQL Server PRINT SELECT (선택한 쿼리 결과를 인쇄하시겠습니까?) (0) | 2023.04.20 |
| Azure App Services에서 스케일아웃은 어떻게 작동합니까? (0) | 2023.04.20 |