Javaにはreplace関数なんて簡単で便利な関数がありますが(iOSは関数名が長い・・・。)、
『.(ピリオド)』を置換したいとか、『.(ピリオド)』で区切りたい(split関数)なんてことがあります。
今回は、バージョン名を取得して、それを『.(ピリオド)』で区切りたい!と思ったのですが若干ハマりました。。
何がしたいかと言うと、バージョン名が 「1.2.5」みたいになっているので
これを「001002005」という感じにそれぞれの数字を3桁でゼロ埋めしたいと思ったわけです。
これを素直に・・・
String versionName = Def.getVersionName(mContext);
String[] versions = versionName.split(".",0);
versionName = String.format("%03d%03d%03d", Integer.parseInt(versions[0]),Integer.parseInt(versions[1]),Integer.parseInt(versions[2]));
とやるとミスります。
正しくは、こう。
String versionName = Def.getVersionName(mContext);
String[] versions = versionName.split("\\.",0);
versionName = String.format("%03d%03d%03d", Integer.parseInt(versions[0]),Integer.parseInt(versions[1]),Integer.parseInt(versions[2]));
バックスラッシュを2つつけることで『.(ピリオド)』という文字として認識してくれます。
(2013/11/27 追記)
ご指摘を頂きまして、追記しました。
こっちの方がいいですね!
String[] versions = versionName.split(Pattern.quote("."), 0);