Stringクラス

java言語では、文字列をオブジェクトとして管理しています。
文字列を扱うクラスとしてStringクラスとStringBufferクラスがあります。
まずここでは、Stringクラスについて見ていきます。

今まで多くのサンプルプログラムを見てきました。
その中でも既にStringクラスは使われてきました。
Stringクラスはjava言語の中で文字列を管理するためのクラスで、文字列を一度オブジェクトに格納したら変更不可能です。

また、Stringクラスには多くのメソッドが用意されています。

Stringクラスの主なメソッド

メソッド名
機能
length()
文字列の長さを返します
charAt(int x)
先頭から数えて、xの位置にある一文字をchar型で返す
substring(int x)
先頭から数えて、xの位置以降の文字列を返す
indexOf(String s)
先頭から検索し、最初に引数の文字列が現れる位置を返す
concat(String s)
引数の文字列を末尾に連結する
trim()
文字列の前後の空白を取り除いた文字列を返す
toUpperCase()
全て大文字にした文字列を返す
toLowerCase()
全て小文字にした文字列を返す
replace(char a,char b)
文字列中のaの文字をbの文字に全て置き換えた文字列を返す

Stringクラスのオブジェクトの生成方法

String 変数名 = "文字列";
String 変数名 = new String

今までオブジェクトの生成にはnewというキーワードを使ってきました。
しかしStringクラスのオブジェクトは大変よく使われるためnew を使わないで作成することができます。

サンプルプログラム(Sample72.java)

class Sample72{
    public static void main(String args[]){
   //オブジェクトの生成
   String str = "Hello!Java";

   //文字列の長さを調べます。
  System.out.println("文字列の長さは" + str.length());

  //文字列の末尾に連結します。
  System.out.println(str.concat("の世界"));
  //全ての文字列を大文字に変えます
  System.out.println(str.toUpperCase());
  //もともとの文字列を出力
  System.out.println(str);

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行します。

ここでは、まずlength()を使ってstrオブジェクトが管理する文字列の長さを取得しています。

次に、strオブジェクトの文字列にconcat()メソッドを使って末尾に新たに文字列を連結しています。

次に、strオブジェクトの文字列をtoUpperCase()メソッドを使い全て大文字に変換しています。

最後にもともとのstrオブジェクトの文字列を取得しています。

ここで、注意しなければいけないことがあります。
ここで使われたtoUpperCase()メソッドなどは一見するとstrオブジェクトの文字列を変更しているように思われますが、

最初の説明通りStringクラスが管理する文字列は変更不可でした。

各メソッドは処理結果として新規にStringオブジェクトを作成して返します。
したがって、もともとの文字列つまり参照変数strが参照している文字列は、Hello!Javaのままです。

では、もうひとつサンプルプログラムを作成します。

サンプルプログラム(Sample72_1.java)

class Sample72_1{
    public static void main(String args[]){
  
   //オブジェクトの生成
    String str = new String("Hello!Java");

  //文字列の長さを調べます。
   System.out.println("文字列の長さは" + str.length());

  //先頭から数えて5番目にある一文字列をchar型で返します
    System.out.println(str.charAt(4));
  //全ての文字列を小文字に変えます。
    System.out.println(str.toLowerCase());

  //先頭から数えて5番目以降の文字列を返します
    System.out.println(str.substring(4));
 //先頭から検索し最初に引数の文字列が現れる位置を返します。
   System.out.println(str.indexOf("l"));

  //もともとの文字列の出力
   System.out.println(str);


   }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます

まず、ここでは今度はオブジェクトの生成にnewを使っています。

文字列の長さを調べた後に今度は、

charAt(int x)メソッドを使って先頭から数えて5番目の文字列を結果に返しています。

しかしここで気をつけなければいけないことはcharAtの引数に4が 入っています。

それは、文字列の位置番号が0から始まるからです。


つまり5番目の文字列を返したいときは0,1,2,3,4になり引数に4が入ります。

次にtoLowerCase()メソッドで文字列を全て小文字に変えています。

substring(4)メソッドで5番目以降の文字列を返しています。

indexOf()メソッドは先頭から検索をかけて最初の引数ここでは"l"です。

つまり最初にlが出現する位置を返します。
Hello!Java 最初にlが現れるのは文字列の番号は0から始まるので2番目です。

したがってこのような結果になります。

ページのトップへ戻る