Как сравнить две строки, которые представляют числа в C #? - PullRequest
1 голос
/ 18 марта 2019

У меня есть две строки "73248723847239847283974283749238" и "98231912938129381290120378988945" Они содержат цифры и могут содержать до 50 символов. Я нашел только одно решение: преобразовать его в массив чисел и сравнить его суммы, но это не очень хорошо с точки зрения производительности. Кто-нибудь знает, как я могу это сравнить?

Ответы [ 2 ]

6 голосов
/ 18 марта 2019

Я должен сравнить это и найти самый большой из них.

Вы можете обработать это с помощью BigInteger

BigInteger b1 = BigInteger.Parse("73248723847239847283974283749238");
BigInteger b2 = BigInteger.Parse("98231912938129381290120378988945");

BigInteger result = BigInteger.Max(b1, b2);

преобразовать его в массив чисел и сравнить его суммы, ноэто не очень хорошо со стороны производительности

Примечание: производительность - самая маленькая проблема в этом подходе ?

3 голосов
/ 18 марта 2019

Сделайте его такой же длины с PadLeft (), а затем сопоставьте его:

var s1 = "73248723847239847283974283749238";
var s2 = "98231912938129381290120378988945";

s1 = s1.PadLeft(50, '0');
s2 = s2.PadLeft(50, '0');

var compareResult = s1.CompareTo(s2);
...