この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
プログラミング:java:基本:文字列操作 [2018/06/10 08:38] sotoyama |
プログラミング:java:基本:文字列操作 [2018/06/10 13:05] (現在) sotoyama |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
===== 文字列操作 ===== | ===== 文字列操作 ===== | ||
- | ==== 文字列比較 ==== | + | ==== 文字列判定 ==== |
- | ^ ^ ^ | + | ^ 用途 ^ メソッド ^ |
- | | | | | + | | 内容比較(大小文字区別あり) | public boolean equals(Object o) | |
+ | | 内容比較(大小文字区別なし) | public boolean equalsIgnoreCase(String s) | | ||
+ | | 文字列長 | public int length() | | ||
+ | | 空文字判定 | public boolean isEmpty() | | ||
+ | |||
+ | |||
+ | ==== 文字列判定 ==== | ||
+ | |||
+ | ^ 用途 ^ メソッド ^ | ||
+ | | 指定文字列を含むか判定 | public boolean contains(String s) | | ||
+ | | 指定文字列で始めるか判定 | public boolean startsWith(String s) | | ||
+ | | 指定文字列で終わるか判定 | public boolean endsWith(String s) | | ||
+ | | 指定文字が最初に登場する位置を判定 | public int indexOf(int ch) | | ||
+ | | 指定文字列が最初に登場する位置を判定 | public int indexOf(String s) | | ||
+ | | 指定文字が最後に登場する位置を判定 | public int lastIndexOf(int ch) | | ||
+ | | 指定文字列が最後に登場する位置を判定 | public int lastIndexOf(String s) | | ||
+ | |||
+ | |||
+ | ==== 文字列切り出し ==== | ||
+ | |||
+ | ^ 用途 ^ メソッド ^ | ||
+ | | 指定位置から1文字切り出し | public char charAt(int index) | | ||
+ | | 指定位置から文字列を切り出し | public String substring(int index)\\ public String substring(int index, int endIndex) | | ||
<code java> | <code java> | ||
+ | String s = "abcdefghijklmn"; | ||
+ | |||
+ | System.out.println("3文字目以降: ", s.substring(3)); | ||
+ | System.out.println("3文字目から4文字: ", s.substring(3, 7)); | ||
</code> | </code> | ||
+ | <code prompt> | ||
+ | 3文字目以降: defghijklmn | ||
+ | 3文字目から4文字: defg | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== 文字列編集 ==== | ||
+ | |||
+ | ^ 用途 ^ メソッド ^ | ||
+ | | 小文字に変換 | public String toLowerCase() | | ||
+ | | 大文字に変換 | public String toUpperCase() | | ||
+ | | 前後の空白を除去 | public String trim() | | ||
+ | | 文字列を置換 | public String replace(String before, String after) | | ||
+ | |||
+ | |||
+ | ==== 文字列連結 ==== | ||
+ | ※StringBuilder: シングルスレッド向け、StringBuffer: マルチスレッド向け | ||
+ | |||
+ | === +演算子による結合 === | ||
+ | |||
+ | <code java> | ||
+ | String s = "hoge1" + "hoge2"; | ||
+ | </code> | ||
+ | |||
+ | === StringBuilder === | ||
+ | |||
+ | <code java> | ||
+ | StringBuilder sb = new StringBuilder(); | ||
+ | |||
+ | sb.append("hoge1"); | ||
+ | sb.append("hoge2"); | ||
+ | |||
+ | String s = sb.toString(); | ||
+ | </code> | ||
+ | |||
+ | === StringBuffer === | ||
+ | |||
+ | <code java> | ||
+ | StringBuffer sb = new StringBuffer(); | ||
+ | |||
+ | sb.append("hoge1"); | ||
+ | sb.append("hoge2"); | ||
+ | |||
+ | String s = sb.toString(); | ||
+ | </code> | ||
+ | |||
+ | ==== 文字列分割 ==== | ||
+ | |||
+ | === split === | ||
+ | |||
+ | ※[[プログラミング:java:基本:正規表現]]も指定可能 | ||
+ | |||
+ | <code java> | ||
+ | String s = "abc,def"; | ||
+ | String[] words = s.split(","); | ||
+ | |||
+ | for (String w : words) { | ||
+ | System.out.println(w); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <code prompt> | ||
+ | abc | ||
+ | def | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== 文字列置換 ==== | ||
+ | |||
+ | === replaceAll === | ||
+ | |||
+ | ※[[プログラミング:java:基本:正規表現]]も指定可能 | ||
+ | |||
+ | <code java> | ||
+ | String s = "abcd"; | ||
+ | String w = s.replaceAll("bc", "X"); | ||
+ | System.out.println(w); | ||
+ | </code> | ||
+ | |||
+ | <code prompt> | ||
+ | aXd | ||
+ | </code> | ||
+ | |||
+ | ==== String⇔char/byte配列の相互変換 ==== | ||
+ | |||
+ | <code java> | ||
+ | String s = "abcdefg"; | ||
+ | |||
+ | char[] data1 = s.toCharArray(); | ||
+ | byte[] data2 = s.getBytes(java.nio.Charset.forName("utf-8")); // 文字コードは省略可能 | ||
+ | |||
+ | String data3 = new String(data1); | ||
+ | </code> | ||