Java - java.lang.StringBuffer クラス


■ページ目次

Top

■java.lang.StringBuffer

Top
■例題
  1. StringBuffer オブジェクトに文字列を加えても、参照が変わらないことを確認してください。("StringBuffer50.java")
    1. public class StringBuffer50 {
    2. public static void main(String[] args) {
    3. StringBuffer sb1 = new StringBuffer("Hello");
    4. StringBuffer sb2 = sb1;
    5. sb1.append(" World!");
    6. System.out.println("sb1 == sb2 ? " + (sb1 == sb2));
    7. }
    8. }

    □ 実行結果

    $ java StringBuffer50
    sb1 == sb2 ? true
    
  2. StringBufferクラスのつぎのメソッドを確認するアプリケーション"StringBuffer51.java"を作成し、実行してください。
    • StringBuffer append(String str)
    • StringBuffer insert(int offset, String str)
    • StringBuffer replace(int start, int end, String str)
    • StringBuffer reverse()
    1. public class StringBuffer51 {
    2. public static void main(String[] args) {
    3. StringBuffer sb1 = new StringBuffer("Hello");
    4. System.out.println(" sb1 = " + sb1);
    5. sb1.append(" World!");
    6. System.out.println(" sb1.append(\" World!\") = " + sb1);
    7. sb1.insert(5, " Java");
    8. System.out.println(" sb1.insert(5, \" Java\") = " + sb1);
    9. sb1.replace(6, 10, "Servlet");
    10. System.out.println("sb1.replace(6, 10, \"Servlet\") = " + sb1);
    11. sb1.reverse();
    12. System.out.println(" sb1.reverse() = " + sb1);
    13. }
    14. }

    □ 実行結果

    $ java StringBuffer51
                              sb1 = Hello
            sb1.append(" World!") = Hello World!
           sb1.insert(5, " Java") = Hello Java World!
    sb1.replace(6, 10, "Servlet") = Hello Servlet World!
                    sb1.reverse() = !dlroW telvreS olleH
    
  3. int型配列を引数として、その配列を下記実行結果のように各要素の内容を文字列化するユーティリティ・クラス"ArrayUtil.java"のtoString()メソッドを確認してください。
    1. public class ArrayUtil {
    2. static String toString(int[] a) {
    3. StringBuffer sb = new StringBuffer("[");
    4. for (int i = 0; i < a.length; i++) {
    5. if (i != a.length -1) {
    6. sb.append(a[i] + ", ");
    7. } else {
    8. sb.append(a[i]);
    9. }
    10. }
    11. sb.append("]");
    12. return sb.toString();
    13. }
    14. }
Top
■実習
  1. コマンドラインからデータを受取り、受け取った並び順の逆順に連結してプリントするアプリケーション"StringBuffer10.java"を作成し、実行してください。
    1. public class StringBuffer10 {
    2. public static void main(String[] args) {
    3. StringBuffer sb = new StringBuffer();
    4. for (int i = 0; i < args.length; i++) {
    5. // ここにコードを書いてください。
    6. }
    7. System.out.println(sb);
    8. }
    9. }

    □ 実行結果

    $ java StringBuffer10 Hello Java World 
    World Java Hello
    
  2. (オプション)
    上記アプリケーションで、それぞれの引数の文字列も逆転するようにしてください。(
    "StringBuffer11.java")

    □ 実行結果

    実行結果
    $ java StringBuffer11 Hello Java World 
    dlroW avaJ olleH
    
  3. コマンドラインから3つの文字列を受取り、第1引数の文字列中にある第2引数と同じ文字列をすべて第3引数の文字列に変換するアプリケーション"StringBuffer20.java"を作成し、実行してください。
    1. public class StringBuffer20 {
    2. public static void main(String[] args) {
    3. StringBuffer sb = new StringBuffer(args[0]);
    4. int i;
    5. while ((i = sb.indexOf(args[1])) > -1) {
    6. // ここにコードを書いてください。
    7. }
    8. System.out.println(sb);
    9. }
    10. }

    □ 実行結果

    $ java StringBuffer20 "hello world, java, and hello to you all" hello hi
    hi world, java, and hi to you all
    
Top

inserted by FC2 system