文字列が基本データ型と違うもう一つの理由は機能を持っていることです。.equals()もその一つです。これをメソッドといいます。
もちろん、「機能は文字列でなくjavaが持っているもので、文字列に摘要しているのだ」と考えても同じと思うかもしれませんが、クラスの勉強をすると「文字列が機能を持っている」ことがわかります。
機能の呼び出しは、文字列.メソッド名() となります。()の中にはデータがあるものもないものもあります。
文字列の長さ(文字数)を返します。長さはintの値となります。
public class Smethod { 
    public static void main( String[] args ) {
        String s = "abcdef";
        System.out.println( s.length() );
        s = "日本語のとき";
        System.out.println( s.length() );
    } 
}
実行結果。日本語の文字も1文字と数えます。
6 6
文字列の中の文字や文字列の位置を返します。intの値となります。
public class Smethod2 { 
    public static void main( String[] args ) {
        String s = "abcdefghijklmn";
        //mojiichi "01234567890123";           //文字の位置を見るため
        System.out.println( s.indexOf('d') );  //charを探せます
        System.out.println( s.indexOf("f") );  //Stringも探せます
        System.out.println( s.indexOf("ij") ); //文字列でも探せます
        System.out.println( s.indexOf("a") );  //先頭は0です
        System.out.println( s.indexOf("ji") ); //含まないときは-1です
        String u = "m";
        System.out.println( s.indexOf( u ) );  //変数内の文字でもOK
        s = "日本語のとき";
        System.out.println( s.indexOf("本") );  //日本語の文字も同じです
        s = "日a本語のとaき";
        System.out.println( s.indexOf("a") );   //最初の文字だけ探します
        System.out.println( s.indexOf("a",2) ); //開始位置を指定すると2番目も探せます
    } 
}
実行結果。
3 5 8 0 -1 12 1 1 6
文字列の中の文字や文字列の位置を返します。intの値となります。
public class Smethod3 { 
    public static void main( String[] args ) {
        String s = "abcdefghijkabcdefghij";
        //mojiichi "012345678901234567890";           //文字の位置を見るため
        System.out.println( s.lastIndexOf("ef") );    //後ろから探しますが、前からの数を返します
        System.out.println( s.lastIndexOf("ef",15) ); //これでは同じ15が返ってきます
        System.out.println( s.lastIndexOf("ef",14) ); //これで4が返ってきます
    } 
}
実行結果。
15 15 4
文字列の一部分を返します。Stringの値となります。
public class Smethod4 { 
    public static void main( String[] args ) {
        String s = "abcdefghijklmn";
        System.out.println( s.substring( 3 ) );   //3番目以降最後まで
        System.out.println( s.substring( 3,5 ) ); //3番目から5-1番目まで
    } 
}
実行結果
defghijklmn de
上の Smethod.java Smethod2.java Smethod3.java Smethod4.java をつくって結果を確認しなさい。
上のプログラムを元にして、「こうしたらどうなるだろう」ということを確認するプログラムを作りなさい。
プログラム中に、何を調べたか結果がどうだったかを //などのコメントとして書き込みなさい。
「こうしたらどうなるだろう」というのはたとえば、
s.substring( 3,3 )と同じ数値を指定するとどうなるだろう。
と考えて、プログラムには
System.out.println( s.substring( 3,3 ) ); //同じ数値を指定すると長さ0の文字列
というようにコメントを入れる。
コンパイルできないようなものを作ってしまったときには、
System.out.println( s.substring( 3,3 ) ); //同じ数値を指定すると長さ0の文字列 // System.out.println( s.substring( "3" ) ); //文字は受け付けない
というように、できなかった行全体をコメントにしてコンパイルしておくこと。(しないと課題チェックが ox になる)