JavaSeminarString 発表者:エン リリ 2006年10月16日 事前準備 • 各自にJavaのフォルダの下で「String」という フォルダを作成すること。 • 時間の関係で、授業中やらなかった演習問 題の回答は以下に示したフォルダの中に保 存しておいた。各自に自分のフォルダまで保 存すること。 – cp ~babypooh/Java/String/* . 文字列の比較-1 • 文字列の比較は2種類ある。 – 一つは文字列のアドレスの比較 例:a==b – もう一つは文字列の内容の比較 例:a.equals(b) • 新しいオブジェクトを生成する(コンストラクタ) コマンド:new 文字列の比較-2 • アドレスが同じの場合 – System.out.println(s1 + "==" + s2 + " : " +(s1 == s2)); //文字列アドレスを比較する。s1 とs2がそれぞれ同じ文字列を指している(文字列の置か れているアドレスが等しい)時に真になる。 • 文字列が同じの場合 – System.out.println(s1+"=="+s2+" : " +s1.equals(s2)); //文字列の内容を比較する。s1と s2がそれぞれ同じ文字列内容であるとき(アドレスは同じ でも違っていてもいい)真になる。 文字列の走査 • 時間の関係で、飛ばす。 • 回答は私のフォルダの中に保存してある。 バイト配列-1 • xの配列全体のサイズの調べ方 – x.length – ()括弧はない • 配列xのi番目のサイズの調べ方 – x[i].length • String sからbyteの配列b[]へ。 – byte b[]=s.getBytes(); • byteの配列から文字列へ。 – String s=new String(b); – 新しい文字列を生成するので、newが必要。 バイト配列-2 • 整数(int a)から文字列へ – String s = new String(a); – もしくは、String s =“”+ a; – もしくは、ss = String.valueOf(a); ssは String型なのに注意すること。(補足) • 文字列から整数へ – int a = Integer.parseInt(s); 多次元配列 • JavaはCと違って、変則的な配列も許されて いる。 • 多重のforループを構成することで、行列の 全て要素を取り出して表示することができる。 • x.lengthとx[0].lengthの違いに注意せよ。 • 演習6を実行せよ。 Collection-List-その1 • 配列は定義するときに決めた大きさを後から 変動できない問題に対して、Javaでは次のク ラスを用意されている。 – List 可変長の配列。要素の動的な追加や削除 ができる。 – Set 集合。Listと同様に要素の追加や削除が可 能。 – Map 写像。KeyとValueの組を要素として追加 や検索。HashMap, TreeMap Collection-List-その2 • Listは通常の配列と同じようにインデックスに よって値を管理する。 • ArrayListクラスの基本的な使い方: – List <型> 変数名 = new ArrayList <型> (); – 「型」はリストの要素になるオブジェクトの型を指 定しており、Generic(な宣言)と呼ばれている。 – J2SE 5.0以前ではコンパイルできないので、 注意。 Collection-List-その3 • Listへの基本操作は次の通り。 – 追加 – 削除 – 置換 add(オブジェクト) remove(オブジェクト) set(インデックスi、オブジェクト) • i番目の要素を置き換える – 要素数 size() Collection-List-その4 • リストの要素の表示し方: – 要素のインデックスを一つずつ指定(10-12行目) • for(int i = 0; i < al.size(); ++i) System.out.println(al.get(i)); – ArrayListオブジェクトをそのまま印刷(13行) • System.out.println(al); – Listの各要素について印刷(17-19行目) • for(String a : al) System.out.println(a); • for(型 変数名 : オブジェクト){繰り返し処理} Collection-Set • Setは値だけによって挿入や検索を行う。た だし、集合内に同じ要素が複数個あることは ない。 • Setの要素の操作はListクラスと共通で、 add(),clear(),remove(),size()などがあ る。 Collection-Map-その1 • Mapは値の識別にキーを使い、(キー、値)の 組の挿入や検索を実現する。 – Mapの実現には、ハッシングや二分木が使われ ていて、それぞれ、 HashMapやTreeMapに相 当する。 Collection-Map-その2 • Mapの基本操作 – 初期化 • Map<キー、値> 変数名=new HashMap<キー、 値>(); – 挿入 • 変数名.put(検索キー、新規の値); – 検索 • 出力値=変数名.get(検索キー); Collection-Map-その3 • 登録されたキーの一覧を求めるには: – keySet() – Values() す キーの一覧からなるSetを返す 値の一覧からなるCollectionを返 • その他のメソッドやクラス: – Sort() リストの要素をソートするColletion s型の静的メソッド – Arrays クラスは配列を操作する便利なクラ ス 宿題 • 宿題8 • Stringフォルダの中にEnglish.javaというファイル を自分のフォルダにコピーし、以下のように仕様を 追加せよ。 – コマンドプロンプトから直したい単語のIndexを入力して から次に正しい単語を入力するようにせよ。 – キーボードからの入力の処理をループしに、ループから 抜ける処理は私の場合は、Enterキーだけ打った場合に 抜けるようにしてあるが、皆さんは各自に自由に変更して もよい。
© Copyright 2024 ExpyDoc