输入文件:
2C QD TC AD 6C 3D TD 3H 5H 7H AS JH KH
要求输出:
CLUBS 10 T 6 2
DIAMONDS 10 T A Q 3
HEARTS K J 7 5 3
SPADES A
Point=16
问题描述:
输入是一个表示扑克牌的字符对流。例如输入文件,表示梅花2,方块皇后,梅花10等。对(pair)由面值(rank)和花色(suit)组成。其中面值为A,2,3,4,5,6,7,8,9,T,J,Q,K。花色为C(clubs,梅花)、D(diamond,方块),H(heart,红桃),S(spade,黑桃)。可以假设各个输入行表示13张扑克牌,而且不含错误,输入以文件结束符终止。
各个输入行形成13张牌的牌型。以易读形式显示各个牌型,按花色和花色中的面值排列(A为高)。然后按下面的标准评估:
A记为4
K记为3
Q记为3
J记为1
空(某一花色无牌)记为3
单牌(某一花色一张牌)记为2
双牌(某一花色两张牌)记为1
对于某种花色中超过5,在5张牌之外,每张记为1
程序代码:
package com.test;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Vector;
public class BridgeHand {
/**
整理和股评牌型
*/
private Pair[] pair;
public static void main(String[] args) {
Pair []pair=new Pair[13];
FileReader rd=null;
try {
rd=new FileReader(".\\Bidge.txt");
} catch (FileNotFoundException e) {
System.out.print("读入文件未找到!");
e.printStackTrace();
}
BufferedReader buf_rd=new BufferedReader(rd);
String str=null;
try {
str=buf_rd.readLine();
} catch (IOException e) {
e.printStackTrace();
}
String []str_arr=str.split(" ");
if(str_arr.length!=13){
System.out.print("数据长度错误,程序退出!");
System.exit(0);
}
for(int i=0;i<str_arr.length;i++){
char[] ch=str_arr[i].toCharArray();
char a,b;
a=ch[0];
b=ch[1];
pair[i]=new Pair(a,b);
}
try {
buf_rd.close();
rd.close();
} catch (IOException e) {
e.printStackTrace();
}
BridgeHand bh = new BridgeHand(pair);
Vector<Pair> p = null;
int count[];
int point=0;
char[] suit = { 'C', 'D', 'H', 'S' };
count=new int[suit.length];
String str_Sav[]={"","","",""};
for (int i = 0; i < suit.length; i++) {
p = bh.getSuit(suit[i]);
count[i]=p.size();
Iterator it = p.iterator();
switch(suit[i]){
case 'C':System.out.print("CLUBS");str_Sav[i]+="CLUBS ";break;
case 'D':System.out.print("DIAMONDS");str_Sav[i]+="DIAMONDS ";break;
case 'H':System.out.print("HEARTS");str_Sav[i]+="HEARTS ";break;
case 'S':System.out.print("SPADES");str_Sav[i]+="SPADES ";break;
}
while (it.hasNext()) {
Pair pa = (Pair) it.next();
if(pa.getRank()=='T'){
System.out.print(" "+"10");
str_Sav[i]+="10 ";
}
else
System.out.print(" "+pa.getRank());
str_Sav[i]+=pa.getRank()+" ";
if(pa.getRank()=='A')point+=4;
if(pa.getRank()=='K')point+=3;
if(pa.getRank()=='Q')point+=2;
if(pa.getRank()=='J')point+=1;
}
System.out.println();
if(count[i]==0)point+=3;
if(count[i]==1)point+=2;
if(count[i]==2)point+=1;
if(count[i]>5)point+=count[i]-5;
}
System.out.println("Points="+point);
FileWriter fw=null;
try {
fw=new FileWriter(".\\Bidge_out.txt");
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw=new PrintWriter(fw,true);
for(int i=0;i<str_Sav.length;i++){
pw.println(str_Sav[i]);
}
pw.println("Point="+point);
pw.close();
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public BridgeHand(Pair[] p) {
//构造函数
pair=p;
}
public Vector<Pair> getSuit(char suit){
//获得指定花色的扑克牌
Vector<Pair> clubs=new Vector();
for(int i=0;i<pair.length;i++){
if(pair[i].getSuit()==suit)clubs.add(pair[i]);
}
MyComp comp=new MyComp();
Collections.sort(clubs, comp);
return clubs;
}
}
class MyComp implements Comparator<Pair>{
//比较类
public int compare(Pair o1, Pair o2) {
if(o1.getRank()=='A')return 1;
if(o2.getRank()=='A')return 1;
if(o1.getRank()>o2.getRank())return -1;
if(o1.getRank()<o2.getRank())return 1;
return 0;
}
}
class Pair{
//扑克牌类
private char rank;
private char suit;
public Pair(char rank,char suit){
this.rank=rank;this.suit=suit;
}
public char getRank(){
return rank;
}
public char getSuit(){
return suit;
}
}
分享到:
相关推荐
【通达信买卖股评主图指标】是一个用于股票分析的技术指标公式,旨在帮助投资者识别股票的买入和卖出时机。这个公式结合了多种技术分析工具,如移动平均线(MA)、乖离率、相对强弱指数(RSI)、随机指标(KDJ)、...
本资源主要关注的是“股评家推荐”,这涉及到金融市场上专业分析师和机构对A股上市公司2023年的评级报告。这些评级通常基于对公司的财务状况、市场表现、行业前景等多方面的深度分析,对投资者有着重要参考价值。 ...
证券投资咨询机构和会员客户之间的信息传递方式一般不外乎电话、传真、电子邮件、短消息等,各种方式均有利弊,相比之下,采用股评语音信箱这种方式则显出较多优势:真实的语音、信息传递量大,不易引起误解;...
股评师分析报告文本情感分析预测股价
股评建议对投资者买卖倾向的影响,大家可能会感兴趣
6. **数据分析与可视化**:使用Python的数据分析库如Pandas进行数据整理,可能还会用到Matplotlib或Seaborn进行数据可视化,展示情感随时间的变化趋势,帮助用户直观理解分析结果。 7. **模型评估与优化**:通过...
论文通过对短线和中长线操作的股票进行分析,发现了我国股评推荐信息价值主要体现在短线投资中,中长线投资价值较低。 论文还讨论了股票投资的交易费用对投资者的影响,并引入了股票交易费率的概念。最后,论文对...
标注的股评文本:这些数据比较偏门,不是很好找,这里搜集整理了正负语料各4607条,已分词。 从东财股吧抓取的上证指数股评文本:约50万条,时间跨度为17年4月到18年5月。东财上证指数吧十分活跃,约7秒就有人发布一...
标注的股评文本:这些数据比较偏门,不是很好找,这里搜集整理了正负语料各4607条,已分词。 从东财股吧抓取的上证指数股评文本:约50万条,时间跨度为17年4月到18年5月。东财上证指数吧十分活跃,约7秒就有人发布一...
同时包括支持分析的公开数据,可供检查和二次开发使用。 数据采集自网络公开数据,可作为学习交流参考,不要作为投资依据! ( 数据报告依赖的数据: baseinfo:基础数据(曾用名、上市日期、股票ID) daily:日线...
2. **股评专栏**:股评录入、发布和股评家评价系统,便于股票市场分析。 3. **论坛系统**:提供用户管理、论坛组织、管理及互动功能,如聊天室。 4. **上市公司历史资料**:包含了公司的基本情况、股本变动、财务...
票贴吧的股评文本进行判断,整理出各上市公司股评的情绪和观点态度,并对此进行筛选、 量化和统计。 投资者情绪日度数据 变量 说明 发帖日期 以YYYY-MM-DD列 示。 股票代码 以交易所公布的证券代码为准。 帖子来源 ...
票贴吧的股评文本进行判断,整理出各上市公司股评的情绪和观点态度,并对此进行筛选、 量化和统计。 投资者情绪日度数据 变量 说明 发帖日期 以YYYY-MM-DD列 示。 股票代码 以交易所公布的证券代码为准。 帖子来源 ...
xx网络技术公司的核心产品和服务包括新闻系统、股评专栏、论坛系统、上市公司历史资料和用户管理访问控制等。其中: 1. 新闻系统:具备新闻录入、发布、维护和历史查询功能,支持分类、热点和时间分类。 2. 股评...
2. **股评专栏**:允许股评录入、发布,并设有股评家评价系统,增加了用户的互动性和参与度。 3. **论坛系统**:提供用户注册、管理、发帖、回复和聊天室功能,增强社区氛围。 4. **上市公司历史资料**:为投资者...
股评专栏允许股评录入和发布,同时设有股评家评价系统。论坛系统具备用户管理、文章组织和管理、贴子回复等互动功能。上市公司历史资料则提供了详细的财务和公司信息。用户管理和访问控制确保了信息安全,而WEB访问...
股评专栏则需要股评录入和发布,以及股评家评价系统的搭建,以吸引用户参与互动。论坛和聊天室则强调用户认证、管理、张贴和回复功能,以营造活跃的社区氛围。 上市公司历史资料数据库的构建,为用户提供方便的信息...
在IT行业中,网络爬虫是获取大量数据的重要...通过以上步骤,我们可以构建一个完整的股票评论数据爬虫,利用Scrapy的强大功能和Python的NLP工具,有效地收集和分析东方财富网的评论数据,为投资决策提供有价值的信息。
* 股评专栏:XXXX 公司提供的股评专栏包括股评录入、股评发布、股评家评价系统等功能。 * 论坛系统:XXXX 公司提供的论坛系统包括用户管理、论坛组织、论坛管理等功能。 * 上市 XXXX 历史资料:XXXX 公司提供的上市 ...