前面一个单词后面是该词对应数字,按照数字大小如何排序
AA:12;BB:18;CC:111;DD:23;EE:45;FFF:2;
排序的结果应该为:CC:111;EE:45;DD:23;BB:18;AA:12;FFF:2;
问用C#如何输出该结果?
[解决办法]
1.你可以用正則表態式也許可以找到規則。
2.將你的字串用.Split拆成字串陣列,之後去比較其大小,產生新的字串陣列然後用一個迴圈將字串陣列加起來就行了。
[解决办法]
string str="AA:12;BB:18;CC:111;DD:23;EE:45;FFF:2;"; Console.Write(string.Join(";", str.Split(new char[]{';'},StringSplitOptions.RemoveEmptyEntries).OrderByDescending(x => int.Parse(x.Split(':')[1])).ToList())); Console.Read();
[解决办法]
string str = "AA:12;BB:18;CC:111;DD:23;EE:45;FFF:2";string[] arr = str.Split(';');Array.Sort(arr, (v1, v2) => int.Parse(v1.Split(':')[1]).CompareTo(int.Parse(v2.Split(':')[1])));str = string.Join(";", arr);