校验是否中了双色球

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