Javaバージョンの配列を並べ替えるascまたはdesc。私は解決のために使用できる正規表現のパターンを探しています。誰でも手伝ってもらえたら教えてください。Javaバージョンの並べ替えのための正規表現
例えばARR:[ '1.4.2_01'、 '1.4.11_01'、 '1.8.0_131'、 '1.6.0_45'、 '1.8.0_72'、 '9.2.4'、「9.0.1あなたが使用できるJavaで「]
Javaバージョンの配列を並べ替えるascまたはdesc。私は解決のために使用できる正規表現のパターンを探しています。誰でも手伝ってもらえたら教えてください。Javaバージョンの並べ替えのための正規表現
例えばARR:[ '1.4.2_01'、 '1.4.11_01'、 '1.8.0_131'、 '1.6.0_45'、 '1.8.0_72'、 '9.2.4'、「9.0.1あなたが使用できるJavaで「]
:
String arr[] = {"1.4.2_01", "1.8.0_131", "1.6.0_45", "1.8.0_72", "9.2.4", "9.0.1"};
Arrays.sort(arr);
出力
System.out.println(Arrays.toString(arr));
[1.4.2_01, 1.6.0_45, 1.8.0_131, 1.8.0_72, 9.0.1, 9.2.4]
順序があります違う。 '1.8.0_131'>' 1.8.0_72'。 –
あなたはsur @FrankRothですか?バージョンは '1.8.2.7..'または' 1.8.0.1..'でしょうか? –
2つのバージョンがどこにあるのかはわかりませんが。 '1.8.2.7'>' 1.8.0.1'。 –
次でそれを並べ替えることができます実装:
var versions = ["1.4.2_01", "1.6.0_45", "1.8.0_72", "1.8.0_131", "9.0.1", "9.2.4"];
var compare = function(v1,v2){
v1splitted = v1.split('_');
v2splitted = v2.split('_');
if(v1splitted[0] === v2splitted[0]){
if(parseInt(v1splitted[1]) > parseInt(v2splitted[1])){
return 1;
}
return -1;
}
return (v1 > v2) ? 1 : -1
}
var sortedVersions = versions.sort(compare);
// ["1.4.2_01", "1.6.0_45", "1.8.0_72", "1.8.0_131", "9.0.1", "9.2.4"]
こんにちはフランクは答えに感謝します。これは、次の配列['1.4.2_01'、 '1.4.11_01'、 '1.8.0_131'、 '1.6.0_45'、 '1.8.0_72'、 '9.2.4'、 '9.0.1' ]。私は質問を更新しました。 – user2971450
[JavaやJavaScriptの?](http://stackoverflow.com/questions/245062/whats-the-difference-between-javascript-and-java) – Andreas
任意の言語で結構です – user2971450