Java - java.lang.String クラス


■ページ目次

Top

■java.lang.String

Top
■例題
  1. つぎのようにStringが定義されています。
    この4つの文字列の参照先が同じか否か、また、内容が同じか否かを判定するアプリケーション
    "String50.java"を作成し、実行してください。
    1. String s1 = "Hello";
    2. String s2 = "Hello";
    3. String s3 = new String("Hello");
    4. String s4 = new String("Hello");
    1. public class String50 {
    2. public static void main(String[] args) {
    3. String s1 = "Hello";
    4. String s2 = "Hello";
    5. String s3 = new String("Hello");
    6. String s4 = new String("Hello");
    7. System.out.println("s1 == s2: " + (s1 == s2));
    8. System.out.println("s1 == s3: " + (s1 == s3));
    9. System.out.println("s1 == s4: " + (s1 == s4));
    10. System.out.println("s3 == s4: " + (s3 == s4));
    11. System.out.println("s1.equals(s2): " + (s1.equals(s2)));
    12. System.out.println("s1.equals(s3): " + (s1.equals(s3)));
    13. System.out.println("s1.equals(s4): " + (s1.equals(s4)));
    14. System.out.println("s3.equals(s4): " + (s3.equals(s4)));
    15. }
    16. }

    □ 実行結果

    $ java String50
    s1 == s2: true
    s1 == s3: false
    s1 == s4: false
    s3 == s4: false
    s1.equals(s2): true
    s1.equals(s3): true
    s1.equals(s4): true
    s3.equals(s4): true
    
  2. Stringクラスのつぎのメソッドを確認するアプリケーション"String52.java"を作成し、実行してください。
    • char charAt(int index)
    • int indexOf(String str)
    • int length()
    • boolean matches(String regex)
    • String replaceAll(String regex, String replacement)
    • String[] split(String regex)
    • String substring(int beginIndex)
    • String substring(int beginIndex, int endIndex)
    • String toLowerCase()
    • String toUpperCase()
    1. public class String52 {
    2. public static void main(String[] args) {
    3. String s = "Hello Java World";
    4. System.out.println(" 0123456789012345");
    5. System.out.println("s = " + s );
    6. System.out.println("s.length() = " + s.length() );
    7. System.out.println("s.charAt(6) = " + s.charAt(6) );
    8. System.out.println("s.indexOf(\"x\") = " + s.indexOf("x") );
    9. System.out.println("s.indexOf(\"l\") = " + s.indexOf("l") );
    10. System.out.println("s.indexOf(\"l\", 6) = " + s.indexOf("l", 6) );
    11. System.out.println("s.matches(\".*Java.*\") = " + s.matches(".*Java.*") );
    12. System.out.println("s.substring(2, 5) = " + s.substring(2, 5) );
    13. System.out.println("s.substring(11, 15) = " + s.substring(11, 15));
    14. System.out.println("s.substring(11, 16) = " + s.substring(11, 16));
    15. System.out.println("s.substring(11) = " + s.substring(11) );
    16. System.out.println("s.toLowerCase() = " + s.toLowerCase() );
    17. System.out.println("s.toUpperCase() = " + s.toUpperCase() );
    18. System.out.println("s.replaceAll(\"Hello\", \"Hi\") = " + s.replaceAll("Hello", "Hi"));
    19. String[] sa = s.split(" ");
    20. for (int i = 0; i < sa.length; i++) {
    21. System.out.println("s.split(\" \")[" + i + "] = " + sa[i]);
    22. }
    23. }
    24. }

    □ 実行結果

    $ java String52
                                  0123456789012345
    s                           = Hello Java World
    s.length()                  = 16
    s.charAt(6)                 = J
    s.indexOf("x")              = -1
    s.indexOf("l")              = 2
    s.indexOf("l", 6)           = 14
    s.matches(".*Java.*")       = true
    s.substring(2, 5)           = llo
    s.substring(11, 15)         = Worl
    s.substring(11, 16)         = World
    s.substring(11)             = World
    s.toLowerCase()             = hello java world
    s.toUpperCase()             = HELLO JAVA WORLD
    s.replaceAll("Hello", "Hi") = Hi Java World
    s.split(" ")[0]             = Hello
    s.split(" ")[1]             = Java
    s.split(" ")[2]             = World
    

Top
■実習
  1. (オプション)
    つぎの文を加えた場合、s2は今までと同じオブジェクトを参照するか否かを判定するようにしてください。(
    "String51.java")
    1. s2 += " World";

  2. コマンドラインから2つの文字列を受け取り、第1引数の文字列中に含まれる第2引数の文字列の位置をすべてプリントするアプリケーション"String60.java"を作成し、実行してください。
    1. public class String60 {
    2. public static void main(String[] args) {
    3. int i = -1;
    4. while (/* ここにコードを書いてください。*/) {
    5. System.out.println(i);
    6. }
    7. }
    8. }

    □ 実行結果

    $ java String60 "hello world" l
    2
    3
    9
    
  3. (オプション)
    上記アプリケーション
    "String60.java"で、大文字小文字を意識しないで位置を表示するアプリケーション"String601.java"を作成し、実行してください。


  4. □ 実行結果

    $ java String601 "HELLO world" l
    2
    3
    9
    
  5. コマンドラインから文字列と文字を受け取り、第1引数の文字列中に含まれる第2引数の文字の位置で文字列を3つに分割してプリントするアプリケーション"String61.java"を作成し、実行してください。
    1. public class String61 {
    2. public static void main(String[] args) {
    3. int i = -1;
    4. while ( /* ここにコードを書いてください。*/ ) {
    5. // ここにコードを書いてください。
    6. }
    7. }
    8. }

    □ 実行結果

    $ java String61 "Hello World" l
    He l lo World
    Hel l o World
    Hello Wor l d
    
Top

inserted by FC2 system