2016-05-03 2 views
0

У меня есть две записи в базе данных со всеми столбцами, единственными столбцами, которые делают разницу между двумя, является столбец с именем txnCo. Таким образом, столбец, который вставлен в следующий, будет иметь более высокое значение, и я хочу получить последний, который выше. В mysql я могу использовать функцию max, но в Java я не могу использовать math.max, поскольку это не цифры. Так есть ли у кого-нибудь какое-либо предложение, как это сделать наилучшим образом?Как получить максимум 2 строки

Я думаю об использовании функции valueOf для каждой строки и сравнения двух.

+0

Что означает «максимум» двух строк? (Лексикографический порядок сортировки? Обратите внимание, что при этом сравнении «50» больше, чем «100».) Каково содержание этого поля? Если он действительно содержит числа, ваша схема должна отражать это. –

+0

Пожалуйста, добавьте некоторые примерные значения и покажите, как они должны сравниваться. – hyde

ответ

2
strA.compareTo(strB); 

- это то, что вы ищете.

Если значение < 0, первая строка лексикографически перед вторым. > 0, второй - впереди. = 0, они равны.

String.compareTo() in the Java API docs.

Он также описан в вопросе How do I compare strings in Java?

Внимание Тхо - это не может быть определена точно так же, как и ваш SQL сравнения, в зависимости от кодировки и т.д.

Если вы кладете все ваши строки в любой упорядоченной коллекции (скажем, TreeSet), вы можете просто извлечь первый/последний, как обычно, коллекции «знать» о естественном порядке строк.

TreeSet<String> set = new TreeSet<>(); 
set.add("string1"); 
set.add("string2"); 
// ... // 
String minString = set.first(); 
String maxString = set.last(); 
Смежные вопросы