package ticket;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
public class LotteryTicket {
@SuppressWarnings("unchecked")
@Test
public void test() throws Exception {
List<String> readLines = IOUtils.readLines(new FileInputStream(
new File("2015.txt")));
List<String> buyTicketsString = IOUtils.readLines(new FileInputStream(
new File("buyTicket.txt")));
List<Ticket> buyTickets = new ArrayList<Ticket>();
Map<String, Ticket> allTicketsMap = new HashMap<String, Ticket>();
for (String buyTicket : buyTicketsString) {
buyTickets.add(toTicket(buyTicket));
}
for (String buyTicket : readLines) {
Ticket ticket = toTicket(buyTicket);
allTicketsMap.put(ticket.getTicketSerial(), ticket);
}
for (Ticket ticket : buyTickets) {
Ticket inputTicket = allTicketsMap.get(ticket.getTicketSerial());
check500Million(inputTicket, ticket);
}
}
public void check500Million(Ticket ticket, Ticket buyTicket) {
boolean hasBuleBall = ticket.getBlueBall().equals(
buyTicket.getBlueBall());
List<String> redBalls = ticket.getRedBalls();
int redHits = 0;
for (String redBall : redBalls) {
if(buyTicket.getRedBalls().contains(redBall))
{
redHits++;
}
}
if(redHits == 6 && hasBuleBall)
{
System.out.println("一等奖");
}
else if(redHits == 6)
{
System.out.println("二等奖");
}
else if(redHits == 5 && hasBuleBall)
{
System.out.println("三等奖");
}
else if ( redHits == 5 || (redHits == 4 && hasBuleBall))
{
System.out.println("四等奖");
}
else if(redHits == 4 || (redHits == 3 && hasBuleBall))
{
System.out.println("五等奖");
}
else if(hasBuleBall)
{
System.out.println("六等奖");
}
else
{
System.out.println("无奖");
}
}
public Ticket toTicket(String fileLine) {
if ("".equals(fileLine) || null == fileLine) {
return Ticket.EMPTY_TICKET;
}
String[] lineContent = fileLine.split("\\s+");
Ticket ticket = new Ticket();
ticket.setTicketSerial(lineContent[0]);
ticket.setTicketTime(lineContent[2]);
String[] balls = lineContent[1].split("\\|");
String bullBalls = balls[1];
ticket.setBlueBall(bullBalls);
String redBalls = balls[0];
String[] redBallArray = redBalls.split(",");
ticket.getRedBalls().addAll(Arrays.asList(redBallArray));
return ticket;
}
// @Test
public void testToTicket() {
toTicket("2015040 13,16,18,27,30,32|16 2015-04-09");
}
}
校验是否中了双色球
猜你喜欢
转载自zyz611.iteye.com/blog/2203997
今日推荐
周排行