Language: Java

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);

	while (sc.hasNextLine()) {
	    String[] cards = sc.nextLine().split(",");
	    // ??????????????????????????????
	    if (isFourCard(cards)) {
		System.out.println("four card");
		continue;
	    }
	    // ????????¬??????????????????
	    if (isStraight(cards)) {
		System.out.println("straight");
		continue;
	    }
	    // ???????????????
	    if (isFullHouse(cards)) {
		System.out.println("full house");
		continue;
	    }
	    // ??????????????????????????????
	    if (isthreeCard(cards)) {
		System.out.println("three card");
		continue;
	    }
	    // ???????????¢????????????
	    if (isTwoPare(cards)) {
		System.out.println("two pair");
		continue;
	    }
	    // ???????????¢????????????
	    if (isOnePare(cards)) {
		System.out.println("one pair");
		continue;
	    }
	    // ????????§?????????????????°null
	    System.out.println("null");
	}
    }

    private static boolean isFourCard(String[] cards) {
	return isPareCards(4, cards, false);
    }

    private static boolean isStraight(String[] cards) {
	Arrays.sort(cards, new PokerHand().new Compare());

	if (isRoyalStraight(cards)) {
	    return true;
	}

	for (int i = 1; i < cards.length; i++) {
	    int draw = Integer.parseInt(cards[i]) - Integer.parseInt(cards[i - 1]);
	    if (draw != 1) {
		return false;
	    }
	}

	return true;
    }

    private static boolean isRoyalStraight(String[] cards) {
	Arrays.sort(cards, new PokerHand().new Compare());

	String[] speStraight = { "1", "10", "11", "12", "13" };

	for (int i = 0; i < cards.length; i++) {
	    if (!speStraight[i].equals(cards[i])) {
		return false;
	    }
	}

	return true;
    }

    private static boolean isFullHouse(String[] cards) {
	return isPareCards(3, cards, false) && isPareCards(2, cards, false);
    }

    private static boolean isthreeCard(String[] cards) {
	return isPareCards(3, cards, false);
    }

    private static boolean isTwoPare(String[] cards) {
	return isPareCards(2, cards, true);
    }

    private static boolean isOnePare(String[] cards) {
	return isPareCards(2, cards, false);
    }

    // ?????????????????°????????°??????????????°???????????¨????????????
    private static boolean isPareCards(int number, String[] cards, boolean pares) {

	HashMap<String, Integer> map = new HashMap<>();
	for (int i = 0; i < cards.length; i++) {
	    int count = 0;
	    if (map.containsKey(cards[i])) {
		count = map.get(cards[i]) + 1;
	    } else {
		count = 1;
	    }

	    map.put(cards[i], count);
	}
	int pareCount = 0;
	for (String key : map.keySet()) {
	    if (map.get(key) == number) {
		pareCount++;
	    }
	}

	// ???????????¢????????????????????´?????????????????§??????
	if (pares && pareCount == 2) {
	    return true;
	}

	return !pares && pareCount == 1;
    }

    // ??\???????????°????????????????????????????????¬?????????
    public class Compare implements Comparator<String> {

	@Override
	public int compare(String o1, String o2) {
	    return Integer.parseInt(o1) - Integer.parseInt(o2);
	}

    }
}

Compiler output:
Main.java:53: error: cannot find symbol
	Arrays.sort(cards, new PokerHand().new Compare());
	                       ^
  symbol:   class PokerHand
  location: class Main
Main.java:70: error: cannot find symbol
	Arrays.sort(cards, new PokerHand().new Compare());
	                       ^
  symbol:   class PokerHand
  location: class Main
2 errors