Важно понять, что Spring является существенно двумя вещами, одним созданным сверху другого:
(2) объем кода Spring. В основном выберите JAVA-технологию, и Вы, вероятно, найдете, что Spring имеет классы помощника для нее. Это так, можно использовать ActiveMQ, Sun Один MQ или безотносительно и абстрагировать их являющийся Spring JmsTemplate, и то же идет для технологий доступа к данным, веб-сервисов, и т.д.
Все эти помощники использование (1) для проводного соединения их вместе.
public int GetLeadingNumber(string input)
{
char[] chars = input.ToCharArray();
int lastValid = -1;
for(int i = 0; i < chars.Length; i++)
{
if(Char.IsDigit(chars[i]))
{
lastValid = i;
}
else
{
break;
}
}
if(lastValid >= 0)
{
return int.Parse(new string(chars, 0, lastValid + 1));
}
else
{
return -1;
}
}
Хотя это, строго говоря, было бы наиболее эффективным, решения для регулярных выражений, предлагаемые другими плакатами, очевидно, более лаконичны и могут быть более ясными, в зависимости от того, сколько обработки вы будете выполнять со строкой.
Регулярное выражение прекрасно разделит это:
var match = Regex.Match(text, @"^(\d+) (.*)$");
Затем match.Groups [0] .Value
] - год, а match.Groups [1] .Value
- это заголовок («Просрочка», «Проценты за просрочку» и т. д.)
Вы можете использовать LINQ для применения сортировки (по убыванию года, title ascending):
string[] titles = new[] { "2008 Arrears", "2009 Arrears" };
var sortedTitles =
from title in titles
let match = Regex.Match(title, @"^(\d+) (.*)$")
orderby match.Groups[0].Value descending, match.Groups[1].Value
select title;
listBox.ItemsSource = sortedTitles.ToArray(); // for example
Регулярное выражение может быть не самым быстрым решением; вот альтернатива, которая все еще поддерживается LINQ:
var sortedTitles =
from title in titles
let year = new string(title.TakeWhile(ch => char.IsDigit(ch)).ToArray())
let remainder = title.Substring(year.Length).Trim()
orderby year descending, remainder
select title;