私はのバージョンチェッカーを私のアプリケーション用に作成しようとしています。 2つの文字列の数字を比較し、1つの数字セットが大きい場合は新しいバージョンが見つかったと考えています。私は必要なもの文字列内の数字のセットを比較してください
oldString = 360 some - File v1.52.876 [build 2546]
newString = 360 some - File v1.53.421 [build 2687]
は、ファイルの前の数字(360)が存在することができるよう、上記の例のように、両方の文字列で「V」後セット番号を比較することです。方法以下
新たに受信したアイテム(checkItemTrack)againsチェックするファイルが含まれていArrayListの(loadTrackedItems)をチェックします。
しかし、正しい番号を取得するのに問題があります。 これを行うには良い方法はありますか?誰かがとても親切で少し助けてくれますか?
ありがとうございます。
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(ビルド12) – Simon
String [] separated = string.splitのような文字列を分割しようとすることができます( ""); date = separated [0]; ist_time = separated [1]; 2つの文字列の分離された値を比較してください.... –