Я пытаюсь сделать кое-что из версии checker для моего приложения. Идея состоит в том, чтобы сравнить числа из 2 строк, и если один набор чисел больше, чем другой, новая версия была найдена.Сравните набор чисел в строке
oldString = 360 some - File v1.52.876 [build 2546]
newString = 360 some - File v1.53.421 [build 2687]
Что мне нужно, чтобы сравнить набор номера после «V» в обеих строках, как там также могут быть числа (360) в передней части файла, как показано в приведенном выше примере.
Ниже метод проверяет Список_массивов (loadTrackedItems), который содержит файлы, подлежащие проверке Agains на вновь принятого пункта (checkItemTrack).
Но у меня возникли проблемы с получением правильных цифр. Есть ли лучший способ сделать это?, Может кто-нибудь быть таким добрым и немного помочь.
Заранее спасибо.
public static boolean newTrackedVersion(String checkItemTrack) {
final List<String> tracking = new ArrayList<String>(loadTrackedItems);
boolean supported = false;
for (final String u : tracking) {
if (checkItemTrack.contains(u)) {
supported = true;
// get the index of the last 'v' character
int trackindex = checkItemTrack.lastIndexOf("v");
String newItem = checkItemTrack.replaceAll("[a-zA-Z]", "").replace("\\s+", "")
.replaceAll("[-\\[\\]^/,'*:.!><[email protected]#$%+=?|\"\\\\()]+", "");
String inList = u.replaceAll("[a-zA-Z]", "").replace("\\s+", "")
.replaceAll("[-\\[\\]^/,'*:.!><[email protected]#$%+=?|\"\\\\()]+", "");
long newTrack = Long.parseLong(newItem.trim());
long inTrackList = Long.parseLong(inList.trim());
if (newTrack > inTrackList) {
//Toast.makeText(context,"New version found: " + checkItemTrack, Toast.LENGTH_LONG).show();
Log.w("NEW VERSION ", checkItemTrack);
Log.w("OLD VERSION ", u);
}
break;
}
}
return supported;
}
Есть ли какой-либо точный формат этой строки? –
Привет, к сожалению, имя файла также может быть (новый файл v23.1) или новый файл v2.5.63 или новый файл v5.12.2 [Build 12] – Simon
попытайтесь разделить строку как String [] separated = string.split («»); date = separate [0]; ist_time = отделено [1]; и сравните разделенные значения двух строк .... –