获取最高字母顺序的字符串
很难说这个权利。基本上,我有一个列表,我需要找回一个字符串,这将是该字母顺序列表中的最后一个。例如:获取最高字母顺序的字符串
如果我有名单:
{ "01", "0a2", "test" }
我需要得到一个字符串,将在排列第二,例如“TF”
这是一个有点hacky的答案,但我希望有所帮助。假设你有你的字符串在排序列表中,我有一个豆蔻“快速和肮脏的” - 方法是按字母顺序未来产生项:
var items = new System.Collections.Generic.SortedList<string, string>();
items.Add("01", "01");
items.Add("02a", "02a");
items.Add("test", "test");
var nextItem = items.Last().Key;
int pos = nextItem.Length - 1;
while (pos >= 0)
{
if ((nextItem[pos] != 'z') && (nextItem[pos] != 'Z'))
{
nextItem = nextItem.Substring(0, pos - 1) + Convert.ToChar(Convert.ToInt32(nextItem[pos]) + 1) + nextItem.Substring(pos + 1);
break;
}
pos--;
}
if (pos == -1)
{
nextItem += "a";
}
有趣的答案。让我试试:) –
我有一个轻微的问题..这是它最终做的:http://screensnapr.com/v/bI2nyb.png - 它开始罚款,然后结束了一遍又一遍地做同样的事情。有任何想法吗? –
你不用什么语言说?
大多数语言对数组有排序功能,按字母排序。只要进行排序然后选择数组的最后一个元素。
对不起,c#... –
http://msdn.microsoft.com/en-us/library/system.array.sort(v=vs.71).aspx –
我知道如何排序,但我需要创建一个新的字符串,它的字母顺序要比数组中的更大...... –
如果你总是想一个字符串,它是按字母顺序“最后“毕竟现有的字符串,这应该工作;)
var words = new []{"01","0a2","test"};
int maxLength = words.ToList().Max(x => x.Length);
string newWord ="";
for(int i=0;i<maxLength +1;i++){
newWord+= "z";
}
“测试”后面的单词是 - 按字母顺序排列 - “tesu”而不是“testz”,就像您的示例中一样。 – Fischermaen
什么语言? :) –
你想要的东西'按字母顺序高于'测试'?不能将它们转换为字符并将其添加到charcode中, – TJHeuvel
“测试”将在“tf”之前。 –