public static boolean isIntVersionNumber(String version) {
        if (version.isEmpty()) {
            return false;
        }

        int idx = 0;
        boolean cont = true;
        do {
            int dotIndex = version.indexOf('.', idx);
            if (dotIndex == idx || dotIndex == version.length() - 1) {
                return false;
            }

            int endIndex;
            if (dotIndex < 0) {
                cont = false;
                endIndex = version.length();
            } else {
                endIndex = dotIndex;
            }

            if (endIndex - idx > 9)
                // Numbers which are larger than 10^10 cannot be stored as integer
                return false;

            for (int i = idx; i < endIndex; i++) {
                char ch = version.charAt(i);
                if (ch < '0' || ch > '9')
                    return false;
            }

            idx = endIndex + 1;
        } while (cont);

        return true;
    }
@Test
    public void testIsIntVersion() {
        assertFalse(isIntVersionNumber(""));
        assertFalse(isIntVersionNumber(" "));
        assertFalse(isIntVersionNumber("."));
        assertFalse(isIntVersionNumber("1."));
        assertFalse(isIntVersionNumber(".1"));
        assertFalse(isIntVersionNumber(".1."));
        assertFalse(isIntVersionNumber("1..8"));
        assertFalse(isIntVersionNumber("1.8."));
        assertFalse(isIntVersionNumber(".1.8"));
        assertFalse(isIntVersionNumber("1.7.10forge1614_FTBInfinity"));
        assertFalse(isIntVersionNumber("3.2-5"));
        assertFalse(isIntVersionNumber("1.9999999999"));

        assertTrue(isIntVersionNumber("0"));
        assertTrue(isIntVersionNumber("1"));
        assertTrue(isIntVersionNumber("0.1"));
        assertTrue(isIntVersionNumber("0.1.0"));
        assertTrue(isIntVersionNumber("1.8"));
        assertTrue(isIntVersionNumber("1.12.2"));
        assertTrue(isIntVersionNumber("1.13.1"));
        assertTrue(isIntVersionNumber("1.999999999"));
        assertTrue(isIntVersionNumber("999999999.0"));
    }