그냥 사용 StringSplitOptions.RemoveEmptyEntries
string.Join(new string(ClientAPI.COLUMN_DELIMITER.ToCharArray()), (new string[] { "1", "2" }))
.Split(ClientAPI.COLUMN_DELIMITER.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
편집
원래 빈 문자열을 반환 할 수 없습니다. 왜냐하면 어느 것이 원래인지 모르기 때문입니다. 어쩌면 빈 문자열을 "패턴"으로 분할하기 전에 빈 문자열을 대체 한 다음 빈 문자열을 다시 복원하는 동안 빈 문자열로 대체 할 수 있습니다.
string pattern = "emptystringpattern";
string seperator = "||";
string[] input = new string[] { string.Empty,"1" };
for (int i = 0; i < input.Length; i++)
{
if (input[i] == string.Empty)
{
input[i] = pattern;
}
}
string joinedInput = string.Join(seperator, input);
var splits = joinedInput.Split(seperator.ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < splits.Length; i++)
{
if (splits[i] == pattern)
{
splits[i] = string.Empty;
}
}
또한 pattern
에는 구분 기호가 포함되어서는 안됩니다.
또 다른 옵션은 분할 전과 분할 과정 후에 빈 문자열의 수를 얻을 수 있다는 것입니다. 계산에 따라 다시 배열을 추가 할 수 있습니다.
[RemoveEmptyEntries] (https://msdn.microsoft.com/en-us/library/system.stringsplitoptions (v = vs.110) .aspx) –
@AFriend를 나눌 때 나는 스플릿을 제어하지 않았습니다. 게다가 문자열 [] *은 제거해서는 안되는 다른 빈 문자열을 포함 할 수 있습니다. – user7518s
그게 무슨 뜻인지 모르겠다. 그리고 이것을 더 읽기 쉬운 줄로 나누지 않고 직접 디버깅하는 것이 어떻습니까? 단계별로 다른 값을 검사하십시오. –