Сообщение Re: Алгоритм сокращения ников от 01.10.2016 4:04
Изменено 01.10.2016 4:14 Vladek
Здравствуйте, Vladek, Вы писали:
V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?
V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)
Пока сделал так, думаю сойдёт:
V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?
V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)
Пока сделал так, думаю сойдёт:
private static string ShortUsername(string username)
{
if (username.Length <= 3)
return String.Concat(username.Where(ch => Char.IsSeparator(ch) == false));
if (username.Any(Char.IsSeparator) == false)
return String.Concat(username.Where(Char.IsUpper).Take(3));
return String.Concat(username
.Where((ch, i) => Char.IsSeparator(ch) == false && (i == 0 || Char.IsSeparator(username[i - 1])))
.Take(3));
}
Re: Алгоритм сокращения ников
Здравствуйте, Vladek, Вы писали:
V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?
V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)
Пока сделал так, думаю сойдёт:
V>А где можно увидеть актуальный алгоритм сокращения ников при цитировании?
V>Тут увидел только формирование заголовка сообщения: https://github.com/rsdn/janus/blob/master/Janus/Core/JanusProtocolSupport/JanusFormatMessage.cs (метод ReSubj)
Пока сделал так, думаю сойдёт:
private static string ShortUsername(string username)
{
if (username.Length <= 3)
return String.Concat(username.Where(ch => Char.IsSeparator(ch) == false));
if (username.Any(Char.IsSeparator))
{
var caps = String.Concat(username
.Where((ch, i) => Char.IsSeparator(ch) == false && (i == 0 || Char.IsSeparator(username[i - 1])))
.Take(3)).ToUpper();
return caps;
}
var shortName = String.Concat(username.Where(Char.IsUpper).Take(3));
return shortName.Length > 0 ? shortName : username.Substring(0, 1).ToUpper();
}