Java Randomクラスを使った乱数の生成2008-03-21 Fri 00:15
たまたま思いついてしまって、つい書いてみました。
好きな人が複数いるのを前提としてますので、浮気と取られかねない既婚者や恋人がいる方はやめましょう(笑) import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part26{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("あなたは今、何人好きな人がいますか?"); String[] str = new String[parseInt(br.readLine())]; System.out.println("ではその人達の名前を先程指定した人数分入力してください"); for(int i = 0; i < str.length; i++){ str[i] = br.readLine(); } System.out.println("今、入力した人の中であなたが一番好きな人は"); int j = new Random().nextInt(str.length); System.out.println(str[j]+"さんですね?"); } catch(Exception e){ e.printStackTrace(); } } } |
Java 可変長引数リスト(mainメソッドに対して)2008-03-20 Thu 01:11
ジェネリックスも少し飽きてきたしネタも減ってきたので違うコードを。
mainメソッドでもOKなんですね。 class Part25{ public static void main(String... args){ for(String s:args) System.out.println(s); } } |
Java ジェネリックス(LinkedListによるリスト要素の入れ替え)2008-03-20 Thu 01:10
ジェネリックスというより、各コレクションクラスのプログラムみたくなって来ましたね(笑)
今度は上手くいった。 import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part24{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); LinkedList System.out.print("リストの長さを指定してください:"); int i = parseInt(br.readLine()); for(int j = 0; j < i; j++){ System.out.println("要素を入力してください"); list.add(parseInt(br.readLine())); } for(int k = 0,l = list.size()-1; k < l; k++,l--){ int m = list.set(k,list.get(l)); list.set(l,m); } System.out.println("リストの要素を逆順に並び替えた結果を出力します"); for(int in:list) System.out.println(in); } catch(Exception e){ e.printStackTrace(); } } } |
Java ジェネリックス(メソッドでの型パラメータの使用とCharacterクラス)2008-03-20 Thu 01:09
今回は時間切れの為、ここで終了しますが、まだ動作がおかしいので後で編集します。
import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part23{ public static for(int i = 0,j = a.length-1; i == j; i++,j--){ T b = a[i]; a[i] = a[j]; a[j] = b; } } public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("配列の長さを指定してください:"); Character[] a = new Character[parseInt(br.readLine())]; System.out.println("配列の要素を入力してください"); for(int i = 0; i < a.length; i++){ a[i] = (char)br.read(); } exchage(a); System.out.println("配列の要素を逆に入れ替えた結果を出力します"); for(int j = 0; j < a.length; j++){ System.out.println(a[j]); } } catch(Exception e){ e.printStackTrace(); } } } 配列を二つ宣言してやっと出来ました。 というより、一つの配列の中で要素の交換って出来ないのか? これも、何とかしてみます。 import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part23{ public static for(int i = 0,j = a.length-1; i < a.length; i++,j--){ T c = a[i]; a[i] = b[j]; b[j] = c; } } public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("配列の長さを指定してください:"); Character[] a = new Character[parseInt(br.readLine())]; Character[] b = new Character[a.length]; System.out.println("配列の要素を入力してください"); for(int i = 0; i < a.length; i++){ a[i] = (char)br.read(); b[i] = (char)br.read(); } exchage(a,b); System.out.println("配列の要素を逆に入れ替えた結果を出力します"); for(int j = 0; j < a.length; j++){ System.out.println(a[j]); System.out.println(b[j]); } } catch(Exception e){ e.printStackTrace(); } } } うお〜、何とfor文の終了条件がちょっとだけ間違えていたせいだったとは・・・。 死んでください俺って気分です・・・。 import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part23{ public static for(int i = 0,j = a.length-1; i < j; i++,j--){ T b = a[i]; a[i] = a[j]; a[j] = b; } } public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("配列の長さを指定してください:"); Character[] a = new Character[parseInt(br.readLine())]; System.out.println("配列の要素を入力してください"); for(int i = 0; i < a.length; i++){ a[i] = (char)br.read(); } exchage(a); System.out.println("配列の要素を逆に入れ替えた結果を出力します"); for(int j = 0; j < a.length; j++){ System.out.println(a[j]); } } catch(Exception e){ e.printStackTrace(); } } } |
Java ジェネリックス(Comparatorを使った昇順Sort)2008-03-20 Thu 01:05
import java.util.*;
import java.io.*; import static java.lang.Integer.parseInt; class ComparatorSample implements Comparator public int compare(Integer a,Integer b){ return a.compareTo(b); } public boolean equals(Object o){ return o == this; } } class Part22{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("配列のサイズを整数で指定してください:"); Integer[] n = new Integer[parseInt(br.readLine())]; System.out.println("配列に入れる整数を入力してください"); for(int i = 0; i < n.length; i++){ n[i] = parseInt(br.readLine()); } Arrays.sort(n,new ComparatorSample()); System.out.println("配列内を昇順にソートした結果を表示します"); for(int j = 0; j < n.length; j++){ System.out.println(n[j]); } } catch(Exception e){ e.printStackTrace(); } } } |
Java ジェネリックス(型パラメータ)2008-03-20 Thu 01:03
別に継承はしなくてもOK。
import java.io.*; import static java.lang.Integer.parseInt; class Part21super protected t1 type1; protected t2 type2; protected Part21super(){} protected Part21super(t1 type1,t2 type2){ this.type1 = type1; this.type2 = type2; } protected t1 getType1(){ return type1; } protected t2 getType2(){ return type2; } } class Part21sub extends Part21super{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Part21super System.out.println("String型は"+sup.getType1()+"でInteger型は"+sup.getType2()+"です。"); } catch(Exception e){ e.printStackTrace(); } } } |
Java ジェネリックス(MapのList)2008-03-20 Thu 01:02
なんとなく思いついたのでやってみましたが、変わった形で出力されるんですね。
是非、試してみて頂ければと思います。 まあ、業務では全く使わないかもしれませんが(笑) import java.util.*; import java.io.*; class Part20{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Map System.out.println("最初は名字を、次は名前を入力してください。"); map1.put(br.readLine(),br.readLine()); List |
Java ジェネリックス(ListのList)2008-03-20 Thu 01:00
書き方が変わっているので注意。
import java.util.*; import java.io.*; class Part19{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); List list1.add(br.readLine()); List
list2.add(list1); System.out.println(list2.get(0).get(0)); } catch(IOException e){ e.printStackTrace(); } } } |
Java ジェネリックス(Mapクラス)2008-03-20 Thu 01:00
最近ちょっと忙しくなって来ましたが、頑張って毎日続けます。
もし、毎日書くのが無理そうになったら休みの日にでもまとめて書こうかと思います。 import java.util.*; import java.io.*; import static java.lang.Integer.parseInt; class Part18{ public static void main(String args[]){ try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Map System.out.println("リストに幾つ値を入れるか整数で指定してください"); int a = parseInt(br.readLine()); for(int i = 1; i <= a; i++){ System.out.println("文字列で値を入力してください。"); map.put(i,br.readLine()); } for(int i = 1; i <= map.size(); i++){ System.out.println(i+"番目に入力した値は"+map.get(i)+"です。"); } } catch(NumberFormatException e){ System.out.println("全半角の整数を入力してください"); } catch(IOException e){ e.printStackTrace(); } } } |
Java ジェネリックス(型チェックPART3)2008-03-20 Thu 00:58
こうすれば、整数以外の入力を受け付けなくなる。
import java.util.*; import java.io.*; import java.util.regex.*; import static java.lang.Integer.parseInt; class Part17{ public static void main(String args[]){ try{ List BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("整数を入力してください:"); list.add(parseInt(br.readLine())); method1(list); } catch(NumberFormatException n){ System.out.println("全半角の整数を入力してください。"); } catch(Exception e){ e.printStackTrace(); } } public static void method1(List try{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("もう一度整数を入力してください:"); list1.add(parseInt(br.readLine())); System.out.println("最初に入力した整数は"+list1.get(0)+"です。"); System.out.println("次に入力した整数は"+list1.get(1)+"です。"); } catch(NumberFormatException n){ System.out.println("全半角の整数を入力してください。"); } catch(Exception e){ e.printStackTrace(); } } } |



