QA@IT
«質問へ戻る

別クラスでカードクラスがあります。メインクラスを実行し、カード名を重複せずに表示したいです。

0
本文
 		}
 	}
 }
+
+
+
+public class Card {
+
+
+	public String spade(){
+		int s = new java.util.Random().nextInt(13)+1;
+		if(s==1){
+			return "スペードA";
+		}if(s==11){
+			return "スペードJ";
+		}if(s==12){
+			return "スペードQ";
+		}if(s==13){
+			return "スペードK";
+		}else{
+			return "スペード"+s;
+		}
+	}
+	public String clover(){
+		int c = new java.util.Random().nextInt(13)+1;
+		if(c==1){
+			return "クローバーA";
+		}if(c==11){
+			return "クローバーJ";
+		}if(c==12){
+			return "クローバーQ";
+		}if(c==13){
+			return "クローバーK";
+		}else{
+			return "クローバー"+c;
+		}
+	}
+	public String heart(){
+		int h = new java.util.Random().nextInt(13)+1;
+		if(h==1){
+			return "ハートA";
+		}if(h==11){
+			return "ハートJ";
+		}if(h==12){
+			return "ハートQ";
+		}if(h==13){
+			return "ハートK";
+		}else{
+			return "ハート"+h;
+		}
+	}
+	public String diamond(){
+		int d = new java.util.Random().nextInt(13)+1;
+		if(d==1){
+			return "ダイヤA";
+		}if(d==11){
+			return "ダイヤJ";
+		}if(d==12){
+			return "ダイヤQ";
+		}if(d==13){
+			return "ダイヤK";
+		}else{
+			return "ダイヤ"+d;
+		}
+	}
+}
+

重複をなくしたい

このプログラムを実行すると重複するのですがどこを間違っているのかわかりません。
なので教えてください

import java.util.ArrayList;

public class Main {
public static void main(String[] args){
Card ca = new Card();
ArrayList role = new ArrayList();
System.out.println("ポーカーを始めます");
System.out.println("あなたの手札は");
while(role.size()=2){
for(int i=0;i<role.size();i++){
if(role.get(i)==role.get(role.size()-1)){
role.remove(i);
}
}
}
}
for(int i=0;i<role.size();i++){
System.out.print(role.get(i));
}
}
}

public class Card {

public String spade(){
    int s = new java.util.Random().nextInt(13)+1;
    if(s==1){
        return "スペードA";
    }if(s==11){
        return "スペードJ";
    }if(s==12){
        return "スペードQ";
    }if(s==13){
        return "スペードK";
    }else{
        return "スペード"+s;
    }
}
public String clover(){
    int c = new java.util.Random().nextInt(13)+1;
    if(c==1){
        return "クローバーA";
    }if(c==11){
        return "クローバーJ";
    }if(c==12){
        return "クローバーQ";
    }if(c==13){
        return "クローバーK";
    }else{
        return "クローバー"+c;
    }
}
public String heart(){
    int h = new java.util.Random().nextInt(13)+1;
    if(h==1){
        return "ハートA";
    }if(h==11){
        return "ハートJ";
    }if(h==12){
        return "ハートQ";
    }if(h==13){
        return "ハートK";
    }else{
        return "ハート"+h;
    }
}
public String diamond(){
    int d = new java.util.Random().nextInt(13)+1;
    if(d==1){
        return "ダイヤA";
    }if(d==11){
        return "ダイヤJ";
    }if(d==12){
        return "ダイヤQ";
    }if(d==13){
        return "ダイヤK";
    }else{
        return "ダイヤ"+d;
    }
}

}

このプログラムを実行すると重複するのですがどこを間違っているのかわかりません。
なので教えてください

import java.util.ArrayList;

public class Main {
	public static void main(String[] args){
		Card ca = new Card();
		ArrayList<String> role = new ArrayList<String>();
		System.out.println("ポーカーを始めます");
		System.out.println("あなたの手札は");
		while(role.size()<5){
			int a = new java.util.Random().nextInt(4);
			if(a==0){
				role.add(ca.spade());
			}if(a==1){
				role.add(ca.clover());
			}if(a==2){
				role.add(ca.heart());
			}else{
				role.add(ca.diamond());
			}
			if(role.size()>=2){
				for(int i=0;i<role.size();i++){
					if(role.get(i)==role.get(role.size()-1)){
						role.remove(i);
					}
				}
			}
		}
		for(int i=0;i<role.size();i++){
			System.out.print(role.get(i));
		}
	}
}



public class Card {


	public String spade(){
		int s = new java.util.Random().nextInt(13)+1;
		if(s==1){
			return "スペードA";
		}if(s==11){
			return "スペードJ";
		}if(s==12){
			return "スペードQ";
		}if(s==13){
			return "スペードK";
		}else{
			return "スペード"+s;
		}
	}
	public String clover(){
		int c = new java.util.Random().nextInt(13)+1;
		if(c==1){
			return "クローバーA";
		}if(c==11){
			return "クローバーJ";
		}if(c==12){
			return "クローバーQ";
		}if(c==13){
			return "クローバーK";
		}else{
			return "クローバー"+c;
		}
	}
	public String heart(){
		int h = new java.util.Random().nextInt(13)+1;
		if(h==1){
			return "ハートA";
		}if(h==11){
			return "ハートJ";
		}if(h==12){
			return "ハートQ";
		}if(h==13){
			return "ハートK";
		}else{
			return "ハート"+h;
		}
	}
	public String diamond(){
		int d = new java.util.Random().nextInt(13)+1;
		if(d==1){
			return "ダイヤA";
		}if(d==11){
			return "ダイヤJ";
		}if(d==12){
			return "ダイヤQ";
		}if(d==13){
			return "ダイヤK";
		}else{
			return "ダイヤ"+d;
		}
	}
}

質問を投稿

重複をなくしたい

このプログラムを実行すると重複するのですがどこを間違っているのかわかりません。
なので教えてください

import java.util.ArrayList;

public class Main {
public static void main(String[] args){
Card ca = new Card();
ArrayList role = new ArrayList();
System.out.println("ポーカーを始めます");
System.out.println("あなたの手札は");
while(role.size()=2){
for(int i=0;i<role.size();i++){
if(role.get(i)==role.get(role.size()-1)){
role.remove(i);
}
}
}
}
for(int i=0;i<role.size();i++){
System.out.print(role.get(i));
}
}
}

このプログラムを実行すると重複するのですがどこを間違っているのかわかりません。
なので教えてください

import java.util.ArrayList;

public class Main {
	public static void main(String[] args){
		Card ca = new Card();
		ArrayList<String> role = new ArrayList<String>();
		System.out.println("ポーカーを始めます");
		System.out.println("あなたの手札は");
		while(role.size()<5){
			int a = new java.util.Random().nextInt(4);
			if(a==0){
				role.add(ca.spade());
			}if(a==1){
				role.add(ca.clover());
			}if(a==2){
				role.add(ca.heart());
			}else{
				role.add(ca.diamond());
			}
			if(role.size()>=2){
				for(int i=0;i<role.size();i++){
					if(role.get(i)==role.get(role.size()-1)){
						role.remove(i);
					}
				}
			}
		}
		for(int i=0;i<role.size();i++){
			System.out.print(role.get(i));
		}
	}
}