java言語のString#splitを使い文字列を配列に分解する時、
引数で指定した文字列は配列から消えるが、要素内に入れたい場合がある。
例えば
String str = "{あいうえお}{かきくけこ}{さしすせそ}";
// これを{}を残したまま以下のように分解したい
String[] result = {
"{あいうえお}",
"{かきくけこ}",
"{さしすせそ}"
};
正規表現の「先読み」「後読み」を使うことで対応できる。
java言語のString#splitを使い文字列を配列に分解する時、
引数で指定した文字列は配列から消えるが、要素内に入れたい場合がある。
例えば
String str = "{あいうえお}{かきくけこ}{さしすせそ}";
// これを{}を残したまま以下のように分解したい
String[] result = {
"{あいうえお}",
"{かきくけこ}",
"{さしすせそ}"
};
正規表現の「先読み」「後読み」を使うことで対応できる。
メールアドレスのみで認証する、パスワード設定が不要な認証方法です。
// java版
Set<String> set = new HashSet<>(
getSharedPreferences("set",MODE_PRIVATE).getStringSet("data", new HashSet<>()));
// Kotlin版
val set = getSharedPreferences("set", MODE_PRIVATE)
.getStringSet("data", mutableSetOf())?.toMutableSet()
| $n$ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 確率$p$ | 30.1% | 17.6% | 12.5% | 9.7% | 7.9% | 6.7% | 5.8% | 5.1% | 4.6% |
| 利点 | コード量が少なくて済む |
|---|---|
| 欠点 |
サービスが終わったら使えない(いつ終わるのかも不明) オフライン環境では使えない 利用規約がよくわからないものが多い(これは自分の理解力のせい...) |