Разбить предложение на 2 равные части

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Например есть текст

В одном из вагонов третьего класса, с рассвета, очутились друг против друга, у самого окна, два пассажира, — оба люди молодые, оба почти налегке, оба не щегольски одетые, оба с довольно замечательными физиономиями, и оба пожелавшие, наконец, войти друг с другом в разговор.
Нужно разбить его на 2 части максимально одной длины
и посредине вставить разделитель |
но не разрывая слова.

Подскажите как сделать?)
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
Код:
string text = "В одном из вагонов третьего класса, с рассвета, очутились друг против друга, у самого окна, два пассажира, — оба люди молодые, оба почти налегке, оба не щегольски одетые, оба с довольно замечательными физиономиями, и оба пожелавшие, наконец, войти друг с другом в разговор.";
int length = text.Length;
int center = length/2;
int centerleft = center - string.Join("",text.Substring(0,center+1).Reverse().ToArray()).IndexOf(" ", 0, StringComparison.CurrentCulture);
int centerright = text.IndexOf(" ", center, StringComparison.CurrentCulture);
//return  centerleft.ToString() + " " + center + " " + centerright.ToString(); //разкоменитруешь увидишь реальный центр по середение и первые позиции пробела с лева от центара и справа от центра
center = (Math.Abs(center-centerleft) >= Math.Abs(center-centerright))?centerright:centerleft ;
return text.Substring(0, center)+"|"+text.Substring(center);
 
  • Спасибо
Реакции: sentinel и alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
LexxWork спасибо, а можешь текст и разделитель сделать в переменных?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
нет, делай сам
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
сделал,спасибо еще раз,все работает)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)