文字列を分割したり、検索したりなどがStringクラスにあります。正規表現なども時々使うことがあります。
- startsWith
- 文字列中に検索文字列が前方にある
- endsWith
- 文字列中に検索文字列が後方にある
- indexOf
- 一致したところの0からの先頭インデックスで,一致しない場合は-1
- substring
- 文字列をインデックス番号で切り取る
- length()
- 文字列の長さ
- split
- 文字列を、空白などの文字で区切って取得する
- matches
- 正規表現でのパターンマッチ
文字列操作
最初に文字列の比較について、
比較には int型 の場合は == などを使いますが、
1 2 3 4 5 6 7 8 9 10 |
int a = 1; int b = 2; if (a == b){ Log.d("debug","等しい"); } else{ Log.d("debug","等しくない"); } } |
文字列は == は使えず、equals() を使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; if (str1.equals(str2)){ Log.d("debug","等しい"); } else{ Log.d("debug","等しくない"); } } // logcat // 等しくない |
その他に文字列を扱う上で様々なものがあります。
startsWith
文字列中に検索文字列が前方にある
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 文字列中に検索文字列が前方にある if (str1.startsWith(str2)) { Log.d("debug","前方一致しています"); } else { Log.d("debug","前方一致していない"); } // logcat // 前方一致しています |
endsWith
文字列中に検索文字列が後方にある
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 文字列中に検索文字列が後方にある if (str1.endsWith(str3)) { Log.d("debug","後方一致しています"); } else { Log.d("debug","後方一致していない"); } // logcat // 後方一致していない |
indexOf
一致したところの0からの先頭インデックスで,一致しない場合は-1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 一致したところの0からの先頭インデックスで,一致しない場合は-1 int result1 = str1.indexOf(str3); if (result1 != -1) { Log.d("debug",result1+"番目の文字から一致しています"); } else { Log.d("debug", "一致せず"); } // logcat // 5番目の文字から一致しています |
substring
文字列をインデックス番号で切り取る
1 2 3 4 5 6 7 8 9 10 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 文字列をインデックスで切り取る String result2 = str1.substring(5, 7); Log.d("debug", "result2="+result2); // logcat // result2=天気 |
length()
文字列の長さ
1 2 3 4 5 6 7 8 9 10 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 文字列の長さ int result3 = str1.length(); Log.d("debug", "「"+str1 +"」の文字列長は: "+result3); // logcat // 「今日はいい天気だな」の文字列長は: 9 |
split
文字列を、空白などの文字で区切って取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 文字列を、空白などの文字で区切って取得する String str4 = "book note pen bag"; String[] array = str4.split(" ", 0); for (int i=0;i<array.length; i++){ Log.d("debug", "array["+i+"] = "+array[i]); } // logcat // array[0] = book // array[1] = note // array[2] = pen // array[3] = bag |
matches
正規表現でのパターンマッチ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
String str1 = "今日はいい天気だな"; String str2 = "今日"; String str3 = "天気"; // 正規表現 // matches if (str1.matches(".*" + str3 + ".*")) { Log.d("debug", "部分一致"); } else { Log.d("debug", "部分一致ではない"); } // logcat // 部分一致 |
Reference:
String | Android Developers