我有两个字符串“ 73248723847239239847283974283749238” 和“ 98231912938129381290290120378988945” 它们包含数字,长度可能为50个字符。我发现了一个解决方案:将其转换为数字数组并比较其总和,但从性能方面来看并不是很好。有人知道我可以比较它吗?
答案 0 :(得分:6)
我必须比较它,找到其中最大的一个。
您可以使用BigInteger
BigInteger b1 = BigInteger.Parse("73248723847239847283974283749238");
BigInteger b2 = BigInteger.Parse("98231912938129381290120378988945");
BigInteger result = BigInteger.Max(b1, b2);
将其转换为数字数组并比较它们的总和,但从性能角度来看不是很好
旁注-性能是此方法的最小问题
答案 1 :(得分:3)
使用PadLeft()使其具有相同的长度,然后比较:
var s1 = "73248723847239847283974283749238";
var s2 = "98231912938129381290120378988945";
s1 = s1.PadLeft(50, '0');
s2 = s2.PadLeft(50, '0');
var compareResult = s1.CompareTo(s2);