Java整形检测输入字符字符串方法

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: Java整形检测输入字符字符串方法
package game;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Game {
  static int vu = 0;
  static int wgold = 100;
  static int dgold = 100;
  public static void Hs(int hs){//计算花色
    hs/=13;
    if(hs==4){
      hs=3;
    }
    switch (hs) {
    case 0:
      System.out.print("黑桃");
      break;
    case 1:
      System.out.print("梅花");
      break;
    case 2:
      System.out.print("方块");
      break;
    case 3:
      System.out.print("红桃");
      break;
    }
  }
  public static void Enter() throws IOException  {//停顿
      System.out.println("按回车继续");
      new BufferedReader(new InputStreamReader(System.in)).readLine();
  }
  private static void Pai(int pai) {
    switch (pai) {
    case 1:
      System.out.println("A");
      break;
    case 11:
      System.out.println("J");
      break;
    case 12:
      System.out.println("Q");
      break;
    case 13:
      System.out.println("K");
      break;
    default:
      System.out.println(pai);
      break;
    }
  }
  public static void main(String[] args) throws IOException {
    Scanner input = new Scanner(System.in);
    System.out.println("                   抽牌游戏                                                     ");
    System.out.println("游戏规则");
    System.out.println("比大小,A最大  。牌大小一样比花色,黑桃最大,其次是梅花,方块,红桃");
    System.out.println("初始金币  玩家 100 电脑金币 100\n开始自动下注10金币");
    while(wgold>0){
      while(dgold>0){
        Enter();
        wgold-=10;
        dgold-=10;
        System.out.println("玩家金币 "+wgold+"\n电脑金币 "+dgold);
        System.out.println("玩家抽牌");
        Enter();
        int hs,pai;//玩家牌花色,牌数
        int dhs,dpai;//电脑牌花色,牌数
        hs=(int)(1+Math.random()*52);//玩家抽的花色
        pai=(int)(1+Math.random()*13);//玩家抽的牌
        Hs(hs);
        Pai(pai);
        System.out.println("请问是否加注  加注输入加注金币数(不能超过现有金币数)  不加注输入0   电脑自动跟");
        jwvu();
        if(pai==1){
          pai=14;//A最大
        }
        Enter();
        System.out.println("电脑抽牌");
        dhs=(int)(1+Math.random()*52);
        dpai=(int)(1+Math.random()*13);
        Hs(dhs);
        Pai(dpai);
        if(pai>dpai){
          System.out.println("玩家胜利");
          if(vu==0){
            wgold+=10*2;
          }else{
            wgold+=10*2+vu*2;
          }
          System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
          Enter();
        }else if(pai<dpai){
          System.out.println("电脑胜利");
          if(vu==0){
            dgold+=10*2;
          }else{
            dgold+=10*2+vu*2;
          }
          System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
          Enter();
        }else if(pai==dpai){
          if(hs<dhs){
            System.out.println("玩家胜利");
            if(vu==0){
              wgold+=10*2;
            }else{
              wgold+=10*2+vu*2;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }else if(hs>dhs){
            System.out.println("电脑胜利");
            if(vu==0){
              dgold+=10*2;
            }else{
              dgold+=10*2+vu*2;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }else{
            System.out.println("平局");
            if(vu==0){
              dgold+=10;
              wgold+=10;
            }else{
              dgold+=10+vu;
              wgold+=10+vu;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }
        }
        if(wgold==0 || dgold==0)break;
      }
      if(wgold==0 || dgold==0)break;
    }
    if(wgold<=0)System.out.println("!!!电脑最终获胜!!!");
    if(dgold<=0)System.out.println("!!!玩家最终获胜!!!");
  }
  public static void jwvu(){//控制加注数输入
    while(true){
      Scanner input = new Scanner(System.in);
      if(input.hasNextInt()){
        vu = input.nextInt();
        }else{
        System.out.println("... 金币用整数计算  重新输入");
        jwvu();
        break;
        }
      if(vu==0){
        break;
      }else if(vu>0 && vu<=wgold){
        System.out.println("已加注");
        wgold-=vu;
        if(dgold>vu){
          dgold-=vu;
        }else{
          dgold-=dgold;
        }break;
      }else{
        System.out.println("输入错误 重新输入");
        continue;
      }
    }
  }
}
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
1月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
103 60
|
5天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
15 1
|
21天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
40 6
|
23天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
76 4
|
2月前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
48 17
|
27天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
72 2
|
29天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
Java
JAVA方法的定义
JAVA方法的定义
90 0
|
6月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
43 1
|
7月前
|
存储 Java
Java数组与带参数方法:定义、调用及实践
Java数组与带参数方法:定义、调用及实践
74 1