Функция Trim()
не работает Пожалуйста, помогите ей не обрезать пробел.
string samplestring = "172-6573-4955";
string[] array = samplestring .Split('-');
string firstElem = array.First();
string restOfArray = string.Join(" ", array.Skip(1));
array[1] = restOfArray.Trim(); // providing value "6573 4955"
Сценарий заключается в том, что я разделяю строку и объединяю второй и последний индексы в один, но слияние с пробелами.
Trim()
удаляет пробелы спереди и сзади строки, а не в середине. Пробелы в середине вставляются с помощью параметра " "
представленного в качестве параметра метода Join()
. string.empty
этого вы можете string.empty
.
Trim используется для удаления всего верхнего и заднего пробелов. И вы хотите обрезать белое пространство посредине. Вы можете попробовать следующее:
string restOfArray = string.Join("", array.Skip(1));
или лучше:
string restOfArray = string.Join(string.Empty, array.Skip(1));
вместо
string restOfArray = string.Join(" ", array.Skip(1));
Попробуй это:
string samplestring = "172-6573-4955";
string[] array = samplestring.Split(new char[] {'-'},2);
string result = array[1].Replace("-","");
Кроме того, для вашего вопроса о случайном размещении пробелов, вы можете объяснить "случайным образом" здесь.
Чтобы просто разделить первый n-let от остальных, используйте дополнительный массив или вы получите ложные данные. И присоединитесь к правильному разделителю, который вы использовали в split (-
):
string restOfArray = string.Join("-", array.Skip(1));
string[] result = new string[] { firstElem, restOfArray };
Вам не нужен Trim()
.
Вы можете упростить код таким образом:
string[] splitCode(string code)
{
string[] segments;
segments = code.Split('-');
return new string[] { segments.First(), string.Join("-", segments.Skip(1)) };
}
Обрезать действительно не нужно здесь; вы можете просто разделить строку и присоединиться к частям, которые вы хотите:
string source = "172-6573-4955";
string[] splitter = new string[] {"-"};
string[] result;
result = source.Split(splitter, StringSplitOptions.None);
string final = (result[1] + result[2]);
Console.Write(final);
Результат:
65734955
Trim работает как ожидалось. Взято из метода String.Trim:
Удаляет все символы верхнего и нижнего пробелов из текущего объекта String.
Возможные решения для вас:
string restOfArray = string.Join(string.Empty, array.Skip(1));
Или
array[1] = restOfArray.Replace(" ", string.Empty).Trim();
string.Join(" ", rest..)
, поэтому пробел всегда будет добавляться. Замените его на""
или используйте статистическую функцию. Более того,Trim
удаляет только начальные и конечные пробелы.