アプリケーションの第三の実験のStringクラス
- 実験の目的
- クラスStringクラスの使用をマスター。
- JDKのヘルプドキュメントを使用することを学びます。
- ウェブテスト
1.既知の文字列は、次の要件:(ソースコード、結果のスクリーンショット)を行うために必要な「これは、Javaのテストです」。
- 文字列s中の文字の数は、統計を発生します。
- コード:
-
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ 文字列str =「これは、Javaのテストです」。 int型のカウント= 0 ; 以下のために(int型 i = 0; i)は(str.lengthを<; iは++ ){ 場合(str.charAt(I)== 'S' ) カウント ++ 。 } のSystem.out.println( "字符串里面『S』出现的次数:" + カウント)。 } }
スクリーンショット:
-
- 文字列の中性子が文字列「である」回数をカウント表示されます。
- コード:
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ 文字列str =「これは、Javaのテストです」。 int型のカウント= 0 ; 以下のために(int型 i = 0; i)は(str.lengthを<; iは++ ){ 場合(str.charAt(I)== 'i'はstr.charAtを&&(I + 1)== 'S' ) カウント ++ 。 } のSystem.out.printlnは( "字符串中子串『ある』出现的次数:" + カウント)。 } }
スクリーンショット:
-
- 文字列内の単語の数は統計に現れる「あります」。
- コード:
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ 文字列str =「これは、Javaのテストです」。 文字列s [] = str.split(」 " )。 int型のカウント= 0 ; 以下のために(int型 i = 0; iがs.lengthを<; Iは++ ){ 場合(S [I] .equals( "ある" )) カウント ++ 。 } のSystem.out.println( "该字符串中单词『』出现の的の次数:"であり+ カウント)。 } }
スクリーンショット:
-
- 文字列が出力され、逆達成。
- コード:
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ StringBufferのN = 新規のStringBuffer()。 n.append(「これは、Javaのテストです」); 文字列str = n.reverse()のtoString()。 System.out.println(STR)。 } }
スクリーンショット:
-
2.ユーザーによる英語の文字列の入力を暗号化または復号化するために、次のアルゴリズムを使用して、プログラムを書きます。これは、ソースコード、結果のスクリーンショットが必要です。
コード:
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ 文字列str =「123456」。 スキャナSC = 新しいスキャナ(System.in)。 文字列str = sc.nextLine()。 チャー M [] = str.toCharArray()。 チャー N [] = 新しい CHAR [50]。int型 J = 0 ; 用(INT I = m.length-3; iはm.length <; iは++ ){ N [J] =のM [i]は、 J ++ ; } 以下のために(int型 i = 0; I <m.length-3; iは++ ){ N [J] =のM [i]は、 J ++ ; } System.out.print(N) } }
スクリーンショット:
3.文字列 "ddejidsEFALDFfnef2357の3ED" を考えます。大文字の数で出力文字列、小文字は、英語以外の文字の数をカウントします。
コード:
パブリック クラスWrold { 公共 静的 ボイドメイン(文字列[]引数){ 文字列str = "ddejidsEFALDFfnef2357の3ED" 。 INT = 0、B = 0、C = 0 。 以下のために(int型、iは0 <)(str.lengthと、iは++ ){ 場合(str.charAt(I)> = 70 && str.charAt(I)<= 95 ){ ++ 。 } そう であれば(str.charAt(I)> = 70 && str.charAt(I)<= 100 ){ B ++ 。 } 他の C ++ ; } のSystem.out.println( "大文字の数:" + A) のSystem.out.println( "数小文字:" + B) のSystem.out.println( "英語以外の文字の数:" + C) ; } }
スクリーンショット:
学習のまとめ:この実験の最初の部分は、文字列クラス、すべてのほとんどは話すクラスの教師を使用することであり、私はマップを取りました。2番目の質問は、不足していない、私はプログラムは問題はないはずだと思います
このスーパーキーワードの違い:
この:現在のオブジェクト
スーパー:直接の親オブジェクト
この():この(A):引数なし現在のクラスとコンストラクタ、などのパラメータを、そこに指定することができます
スーパー()のような参照を割り当てることができる直接の親クラスの引数なしのコンストラクタ:スーパー(A)
注意:B->はthis.b-> super.b、見つからなかった場合、コンパイラは明示的に要求されます:メソッドで変数bを呼び出すときに最も近い1つの参照変数を見つけるまで、1は、コンパイラが上向きに通過しますエラーメッセージ。
2は、変数Bにのみ定義されているときに発生した場合、親クラス、次に= this.b = super.b B。
図3に示すように、カバー部材可変ローカル変数BはB、メンバー変数を呼び出しthis.b使用して、変数を継承メンバ変数と新しいサブクラスを含み、この場合には、隠れ変数を含みません。
図4に示すように、親クラスのメンバ変数をカバーB、この隠されたメンバ変数を呼び出しsuper.b使用bはサブクラスのメンバ変数。
子クラスは、スーパークラスのメソッドメソッドをオーバーライドする5、()、あなたは親クラスのメソッドが隠されているコールする)(super.methodを使用することができます。
6、スーパー()およびこの()ハード条件、またはコンパイラでは--Constructor呼び出しによって、コンストラクタの最初のステートメントでなければならないことはできません。ということ
どちらも、最初の行コンストラクタの位置であるように思われます。
継承:Javaクラスは、単一継承することができます。
オーバーロードとカバーします:
169冊。