为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

难度入门
时长 5小时 0分
学习人数
综合评分9.50
1125人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.4 逻辑清晰
  • 处理异常的方法

    查看全部
  • 常见的检查异常

    查看全部
    0 采集 收起 来源:Java异常简介

    2019-04-13

  • 常见异常情况

    查看全部
    0 采集 收起 来源:Java异常简介

    2019-04-13

  • 集合的作用


    查看全部
  • Arrays.asList( 数组) 把数组转换成list

    查看全部
  • 1234553b22ff10001b6d104810124.jpg

    查看全部
  • 53abea61000151e105120118.jpg1234553abeaad000109af04610098.jpg

    查看全部
  • 53a7d34300011c6005970125.jpg12345

    查看全部
  • 从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld"。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。

    查看全部
  •     6-5课后作业

    public void testSort3() {
         List<String> StringList=new ArrayList<String>();
         /**
          * 采用List的方法保存length,调用contains方法保证没有重复长度的字符串
          */
         List<Integer> length=new ArrayList<Integer>();
         Integer k;
         for(int i=0;i<10;i++) {
          Random random=new Random();
          do {
           k=random.nextInt(10);
          }
          while(length.contains(k));
          length.add(k);
         }
         /**
          * 实现生成长度为10以内的随机字符串,并调用sort方法进行排序
          */
         for(int i=0;i<10;i++) {
              String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
              String sb=new String();
              Random random=new Random();
              do {
              for(int j=0;j<length.get(i);j++){
                int number=random.nextInt(62);
                sb=sb+(str.charAt(number));
              }
              System.out.println("随机生成的字符串:"+sb.toString());
              }while(StringList.contains(sb));
              StringList.add(sb);
         }
              System.out.println("----排序前-----");
              for(String string:StringList)
               System.out.println("随机生成的字符串:"+string);
              Collections.sort(StringList);
              System.out.println("----排序后-----");
              for(String string:StringList)
               System.out.println("随机生成的字符串:"+string);
        }



    查看全部
  • 53a9207800016b5c09770596.jpg不少于五个字

    查看全部
  • Exception包括空指针异常(NullPointerException)

    数组下标越界异常(ArrayOutOfBoundsException)

    类型转换异常(ClassCatException)

    算术异常(Arithmetic Exception)

    查看全部
  • String对象创建后不能被修改,所谓的修改其实是创建了新的对象,所指向的内存空间不同。

    如果需要一个可以改变的字符串,可以使用StringBuffer或者StringBuilder

    每次new一个字符串就是产生一个新的对象,即使两个字符串的内容相同,使用"=="比较是也为"flase",如果只需比较内容是否相同,应使用"equal()"方法

    查看全部
  • int获得字符(串)第一次出现的位置:str.indexOf( );

    int获得字符(串)最后一次出现的位置:str.lastIndexOf();

    String获得[a,b)位置的子串:str.substring(begin,end);

    String获得a位置到结束字符串:str.substring(begin);

    String获得返回去除前后空格的字符串:str.trim();

    boolean 字符串与指定内容比较:str.equals("");

    String 将字符串字母转换为大写:str.toUpperCase();

    String 将字符串字母转换为小写:str.toLowerCase();

    char 获得字符串中指定位置的字符:str.charAt(int index );

    byte[] 将字符串转化为byte数组:str.getBytes();

    boolean 检查字符串中是否包含制定字符串:str.contains();

    String 将字符串中的字符替代:str.replace(char,newchar);

    String []array将字符串分割为子字符串数组:str.spilt();



    查看全部

  • public class Poker {

    private String Suit;//定义扑克牌的花色属性

    private String ID;//定义扑克牌的数字属性

    public Poker(String suit, String id){

    Suit = suit;

    ID = id;

    }

    public Poker() {

    // TODO Auto-generated constructor stub

    }

    public String showSuit(){

    return this.Suit;//返回扑克牌的花色

    }

    public String showID(){

    return this.ID;//返回扑克牌的数字

    }

    @Override

    public int hashCode() {

    final int prime = 31;

    int result = 1;

    result = prime * result + ((ID == null) ? 0 : ID.hashCode());

    result = prime * result + ((Suit == null) ? 0 : Suit.hashCode());

    return result;

    }

    public int ReturnIDtoNumber(Poker pk){

    int id=0;

    if(pk.ID.equals("A")) id=1;

    else if(pk.ID.equals("2")) id=2;

    else if(pk.ID.equals("3")) id=3;

    else if(pk.ID.equals("4")) id=4;

    else if(pk.ID.equals("5")) id=5;

    else if(pk.ID.equals("6")) id=6;

    else if(pk.ID.equals("7")) id=7;

    else if(pk.ID.equals("8")) id=8;

    else if(pk.ID.equals("9")) id=9;

    else if(pk.ID.equals("10")) id=10;

    else if(pk.ID.equals("J")) id=11;

    else if(pk.ID.equals("Q")) id=12;

    else  id=13;

    return id;

    }

    public int ReturnSuitToNumber(Poker pk){

    int suit=0;

    if(pk.showSuit().equals("方块")) suit=1;

    else if(pk.showSuit().equals("梅花")) suit=2;

    else if(pk.showSuit().equals("红桃")) suit=3;

    else suit=4;

    return suit;

    }

    /**

     * 对比扑克大小

     * @param pk

     * @return

     */

    public boolean equals(Poker pk) {

    int id1 = this.ReturnIDtoNumber(this);

    int id2 = this.ReturnIDtoNumber(pk);

    int suit1 = this.ReturnSuitToNumber(this);

    int suit2 = this.ReturnSuitToNumber(pk);

    if(id1>id2)return true;

    else if(id1==id2){

    if(suit1>suit2)return true;

    else return false;

    }

    else return false;


    }


    }

    /********************************************************************/

    import java.util.*;

    public class Player {

    private String ID;//定义玩家的ID

    private String Name;//定义玩家的姓名

    public Set<Poker>Rudge =new HashSet<Poker>();//定义玩家手牌

    public Player(String id, String name){

    ID=id;

    Name=name;

    }

    public String showID(){

    return this.ID;

    }

    public String showName(){

    return this.Name;

    }

    }

    /********************************************************************/

    import java.util.*;

    public class pokerGame {


    /**

    * @param args

    */

    //创建泛型为Poker的List

    List<Poker>pokers = new ArrayList<Poker>();

    //创建泛型为Player的Map

    public Map<String,Player>players = new HashMap<String,Player>();

    /**

    * 添加扑克牌方法

    */

    public void AddPoker(){

    Poker[] poker={ new Poker("方块","A"),new Poker("方块","2"),new Poker("方块","3"),new Poker("方块","4"),new Poker("方块","5"),new Poker("方块","6"),new Poker("方块","7"),new Poker("方块","8"),new Poker("方块","9"),new Poker("方块","10"),new Poker("方块","J"),new Poker("方块","Q"),new Poker("方块","K"),

    new Poker("梅花","A"),new Poker("梅花","2"),new Poker("梅花","3"),new Poker("梅花","4"),new Poker("梅花","5"),new Poker("梅花","6"),new Poker("梅花","7"),new Poker("梅花","8"),new Poker("梅花","9"),new Poker("梅花","10"),new Poker("梅花","J"),new Poker("梅花","Q"),new Poker("梅花","K"),

    new Poker("红桃","A"),new Poker("红桃","2"),new Poker("红桃","3"),new Poker("红桃","4"),new Poker("红桃","5"),new Poker("红桃","6"),new Poker("红桃","7"),new Poker("红桃","8"),new Poker("红桃","9"),new Poker("红桃","10"),new Poker("红桃","J"),new Poker("红桃","Q"),new Poker("红桃","K"),

    new Poker("黑桃","A"),new Poker("黑桃","2"),new Poker("黑桃","3"),new Poker("黑桃","4"),new Poker("黑桃","5"),new Poker("黑桃","6"),new Poker("黑桃","7"),new Poker("黑桃","8"),new Poker("黑桃","9"),new Poker("黑桃","10"),new Poker("黑桃","J"),new Poker("黑桃","Q"),new Poker("黑桃","K")

    };

    pokers.addAll(0,Arrays.asList(poker));

    int i=0;

    System.out.println("----------------创建扑克牌成功----------------");

    System.out.println("为:");

    for(Poker p:pokers){

    System.out.print(p.showSuit()+p.showID()+" ");

    i++;

    if(i%13==0)System.out.println();

    }

    }

    /**

    * 添加玩家方法

    * @param args

    */

    public void AddPlayer(){

    Scanner input = new Scanner(System.in);

    int i=0;

    while(true){

    System.out.println("请输入第"+(i+1)+"位玩家的ID和姓名:");

    System.out.println("输入ID:");

    String id = input.next();

    Player player = players.get(id);

    if(player == null){

    System.out.println("输入姓名");

    String name = input.next();

    Player newplayer = new Player(id, name);

    players.put(id, newplayer);

    i++;

    if(i==2)break;

    }

    else{

    System.out.println("已存在该玩家,请重新输入!");

    continue;

    }

    }

    Set<String>KeySet = players.keySet();

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    System.out.println("----欢迎玩家:"+pl.showName());

    }

    }

    }

    /**

    * 洗牌方法

    * @param args

    */

    public void PokerShuffle(){

    System.out.println("----------------开始洗牌----------------");

    Collections.shuffle(pokers);

    System.out.println("----------------洗牌结束----------------");

    }

    /**

    * 玩家抓牌

    */

    public void Draw(){

    Set<String>KeySet = players.keySet();

    List<Integer>integerlist=new ArrayList<Integer>();

    Integer K;

    Random random = new Random();

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    for(int i=0; i<2; i++){

    do{

    K = random.nextInt(54);

    }while(integerlist.contains(K));

    integerlist.add(K);

    System.out.println("---玩家:"+pl.showName()+"拿牌");

    pl.Rudge.add(pokers.get(K));

    }

    }

    }

    System.out.println("----------------发牌结束----------------");

    }

    /**

    * 选出玩家手中最大的扑克牌

    */

    public Poker MaxPoker(Player pl){

    List<Poker> p =new ArrayList<Poker>();

    for(Poker pk:pl.Rudge){

    p.add(pk);

    }

    if(p.get(0).equals(p.get(1))) return p.get(0);

    else return p.get(1);

    }

    /**

    * 游戏开始

    * @param args

    */

    public void GameStart(){

    System.out.println("----------------游戏开始----------------");

    Set<String>KeySet = players.keySet();

    List<Poker> p =new ArrayList<Poker>();

    //取出每一个玩家手中最大的牌

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    System.out.println("玩家:"+pl.showName()+"最大的手牌为:"+this.MaxPoker(pl).showSuit()+this.MaxPoker(pl).showID());

    p.add(this.MaxPoker(pl));

    }

    }

    //进行对比,决出胜负

    if(p.get(0).equals(p.get(1))){

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    if(pl.Rudge.contains(p.get(0))){

    System.out.println("----------------玩家"+pl.showName()+"获胜----------------");

    }

    }

    }

    }

    else {

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    if(pl.Rudge.contains(p.get(1))){

    System.out.println("玩家"+pl.showName()+"获胜");

    }

    }

    }

    }

    //显示玩家的手牌

    for(String ID:KeySet){

    Player pl = players.get(ID);

    if(pl!=null){

    System.out.print(pl.showName()+":[");

    for(Poker pk:pl.Rudge){

    System.out.print(pk.showSuit()+pk.showID()+" ");

    }

    System.out.println("]");

    }

    }

    }


    public static void main(String[] args) {

    // TODO Auto-generated method stub

    System.out.println("----------------创建扑克牌----------------");

    pokerGame pg=new pokerGame();

    pg.AddPoker();

    pg.PokerShuffle();

    pg.AddPlayer();

    pg.Draw();

    pg.GameStart();


    }


    }


    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!