Я строю эффективную систему. Мне нужно сравнить строки, которые являются числовыми и могут иметь длину от 0 до 128 и могут иметь нули в начале.Самый быстрый способ сравнения числовых строк 100 строк в java
Я посмотрел в гугле и нашел несколько постов, но никто не считает длину строки, пока 100.
Я создал компаратор, который проверяет нуль, начиная с 0, длина и характер по сравнению символов.
У меня есть другой вариант использования BigInteger. Но не определено, что безопасно и быстро.
, и если BigInteger быстро, я не знаю, что делает его реализацию быстро.
Вы хотите знать, что лучше всего, безопасный и надежный практик для сравнения числовых строк длины по меньшей мере 100.
Почему Второй один с большим целым числом бежит быстро?
////
общественность статическая булевы isGreaterSequence1 (конечная строка newSequence, конечная строка oldSequence) {
if (newSequence == null || oldSequence == null || newSequence.isEmpty() || oldSequence.isEmpty()) {
return false;
}
final String oldSequenceModified = getWithoutStartZero(oldSequence);
final String newSequenceModified = getWithoutStartZero(newSequence);
if (oldSequenceModified.compareTo(newSequenceModified) > 0) {
return true;
}
return false;
}
public static String getWithoutStartZero(final String input) {
final int length = input.length();
int end = 0;
while (end < length) {
if (input.charAt(end) != '0') {
break;
}
end++;
}
return input.substring(end, length);
}
public static boolean tempCompare(final String newSequence, final String oldSequence) {
final BigInteger ns = new BigInteger(newSequence);
final BigInteger os = new BigInteger(oldSequence);
final int res = ns.compareTo(os);
if (res > 0) {
return true;
}
return false;
}
//
Просьба уточнить, следует ли игнорировать ведущие нули. то есть «00096»> «096»> «96»? – OldCurmudgeon
Не совсем уверен, что вы просите ... – Haris
Как насчет знака? – luk32