Parser.java
package soen6441riskgame.utils;
/**
* Helper to parse
*/
public class Parser {
/**
* Parse int with default value
*
* @param number string to parse
* @param defaultValue default return value if parse error
* @return return default value if parse error
*/
public static int parseWithDefault(String number, int defaultValue) {
try {
return Integer.parseInt(number);
} catch (NumberFormatException e) {
return defaultValue;
}
}
/**
* check if input is a valid number
*
* @param value the string to check
* @return false if the string is double, float, string, negative or very large (long and
* Double.isInfinite())
*/
public static boolean checkValidInputNumber(String value) {
boolean flag = true;
try {
// check for double, float, string
int num = Integer.parseInt(value);
// check negative value
if (num < 0) {
flag = false;
}
// check long value
if (!((num == Math.floor(num)) && !Double.isInfinite(num))) {
flag = false;
}
return flag;
} catch (NumberFormatException e) {
ConsolePrinter.printFormat("Invalid Input. (Cannot be negative, decimal or string)");
return false;
}
}
}