-
“==” 和 equals() 有什么区别呢?
==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象
equals(): 比较存储在两个字符串对象中的内容是否一致
PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。
查看全部 -
每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法(
查看全部 -
String 类的常用方法:
友情提示:
1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1
2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1
3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
查看全部 -
非检查异常
查看全部 -
try {
//一些会抛出异常的方法
} catch (Exception e) {
//处理该异常的代码块
} finally {
//最终将要执行的代码块
}
多重catch的时候,要由小到大,子类到父类
catch(MismatchException e){}
catch(){}
catch(Exception e){}查看全部 -
Set不能使用get()方法,因为它是无序的,不能用位置
查看全部 -
泛型类型限制
查看全部 -
package com.yangkai.pai; import java.util.*; public class PlayTest { //创建扑克牌的载体,扑克牌是有序的,不重复载体,所以用List集合 List<Pai> list=new ArrayList<Pai>(); List<Person> persons=new ArrayList<Person>(); Map<Short,String> huaMap=new HashMap<Short, String>(){ { put((short)0,"红桃"); put((short)1,"黑桃"); put((short)2,"方片"); put((short)3,"梅花"); } }; /** * 创建洗牌方法 */ public void init(){ System.out.println("============洗牌中=========="); //清空牌库 list=new ArrayList<Pai>(); //创建13*4 也就是 52张牌的对象,因为这些牌是随机排列的,所以使用set集合 Set<Pai> pais=new HashSet<Pai>(); for(int i=1;i<14;i++){ for (short j = 0; j < 4; j++) { Pai pai=new Pai(); pai.setHua(j); pai.setNumber(i); pais.add(pai); } } //遍历set集合,把牌放入list集合中,也就是放入牌库中 list.addAll(pais); } /** * 创建玩家 */ public void initPerson(){ System.out.println("==========初始化玩家========="); Person p1=new Person(); p1.setId(1); p1.setName("赌神"); persons.add(p1); Person p2=new Person(); p2.setId(2); p2.setName("赌圣"); persons.add(p2); } /** * 发牌,每人发两张 */ public List<HandPai> fapai(){ System.out.println("=========开始发牌========="); //如果牌数少于4张,调用洗牌方法 if(list.size()<4){ this.init(); } //获取手牌 List<HandPai> handList=new ArrayList<HandPai>(); for(int i=4;i>0;i--){ //生成一张手牌 HandPai handPai=new HandPai(); //抽牌 Pai pai=list.get(i-1); //给手牌赋值 handPai.setHua(pai.getHua()); handPai.setNumber(pai.getNumber()); //发给一个玩家 if(i%2==0){ handPai.setName(persons.get(0).getName()); }else{ handPai.setName(persons.get(1).getName()); } handList.add(handPai); //从牌库移除一张牌 list.remove(i-1); System.out.println("玩家:"+handPai.getName()+",发牌:"+huaMap.get(handPai.getHua())+handPai.getNumber()); } return handList; } /** * 比较两个人的手牌大小 * @param handPais */ public void bijiao(List<HandPai> handPais){ Collections.sort(handPais,new PaiCompara()); System.out.println("获胜者为:"+handPais.get(3).getName()+ ",最大点数为:"+handPais.get(3).getNumber() + ",花色为:"+huaMap.get(handPais.get(3).getHua())); } /** * 游戏入口 * @param args */ public static void main(String[] args) { System.out.println("===欢迎进入欢乐比大小游戏==="); System.out.println("===================="); System.out.println("====== 1:开始游戏 ==="); System.out.println("====== 2:退出游戏 ==="); System.out.println("===================="); System.out.println("===请输入1并按回车开始游戏==="); Scanner scanner=new Scanner(System.in); int cmd=scanner.nextInt(); if(cmd == 1){ PlayTest playTest=new PlayTest(); playTest.init(); playTest.initPerson(); do { List<HandPai> handPaiList=playTest.fapai(); playTest.bijiao(handPaiList); System.out.println("===================="); System.out.println("====== 3:继续发牌 ==="); System.out.println("====== 2:退出游戏 ==="); System.out.println("===================="); cmd=scanner.nextInt(); }while (cmd != 2); System.out.println("===欢迎下次光临==="); }else if(cmd == 2){ System.out.println("===欢迎下次光临==="); } } /** * 手牌对象 */ class HandPai implements Comparable<HandPai>{ //玩家名称 private String name; //扑克牌花色 0-红桃 1-黑桃 2-方片 3-梅花 private Short hua; //牌号 1-13 private int number; public String getName() { return name; } public void setName(String name) { this.name = name; } public Short getHua() { return hua; } public void setHua(Short hua) { this.hua = hua; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public int compareTo(HandPai o) { return 0; } } /** * 定义比较规则 */ class PaiCompara implements Comparator<HandPai>{ public int compare(HandPai o1, HandPai o2) { if(o1.getNumber()>o2.getNumber()){ return 1; }else if(o1.getNumber()<o2.getNumber()){ return -1; }else{ if(o1.getHua()>o2.getHua()){ return 1; }else if(o1.getHua()<o2.getHua()){ return -1; } } return 0; } } /** * 这是一个扑克牌对象 */ public class Pai { //扑克牌花色 0-红桃 1-黑桃 2-方片 3-梅花 private Short hua; //牌号 1-13 private int number; public Short getHua() { return hua; } public void setHua(Short hua) { this.hua = hua; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } } /** * 创建打牌的玩家 */ public class Person { /** * 玩家id */ private int id; /** * 玩家名称 */ private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }
查看全部 -
java 集合类型
查看全部 -
Sting 字符串方法
查看全部 -
异常经验与总结
查看全部 -
处理异常 多重catch
查看全部 -
异常之检查异常
查看全部 -
异常类型-非检查异常
查看全部 -
比较规则,规则。
查看全部
举报