この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
プログラミング:java:基本:文字列操作 [2018/06/10 11:14] sotoyama |
プログラミング:java:基本:文字列操作 [2018/06/10 13:05] (現在) sotoyama |
||
---|---|---|---|
ライン 51: | ライン 51: | ||
==== 文字列連結 ==== | ==== 文字列連結 ==== | ||
- | ※+演算子以外を使用した結合 | + | ※StringBuilder: シングルスレッド向け、StringBuffer: マルチスレッド向け |
- | ^ 用途 ^ メソッド ^ | + | |
- | | 小文字に変換 | public String toLowerCase() | | + | === +演算子による結合 === |
+ | |||
+ | <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> | ||