Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int string2Int(String s, int defaultValue) {
- int i=defaultValue;
- try {
- i=Integer.parseInt(s);
- }
- catch(Exception ex) {
- }
- return i;
- }
- private static long getNumber(String str, long defaultValue) {
- if (str == null)
- return defaultValue;
- str = str.trim();
- if (str.length() == 0)
- return defaultValue;
- boolean isNegative;
- if (str.charAt(0) == '-' || str.charAt(0) == '+') {
- if (str.length() == 1)
- return defaultValue;
- else
- isNegative = str.charAt(0) == '-';
- } else if (Character.isDigit(str.charAt(0)))
- isNegative = false;
- else
- return defaultValue;
- final int radix = 10;
- final int zero_number_code = 49;
- final int nine_number_code = 57;
- long result = 0;
- boolean isFloat = false;
- for (int i = Character.isDigit(str.charAt(0)) ? 0 : 1; i < str.length(); i++) {
- char currentSymbol = str.charAt(i);
- if (currentSymbol == '.')
- if (isFloat)
- return defaultValue;
- else
- isFloat = true;
- if (currentSymbol != '.' &&
- (currentSymbol > nine_number_code || currentSymbol < zero_number_code))
- return defaultValue;
- if (!isFloat) {
- result *= radix;
- result += (currentSymbol + 1 - zero_number_code);
- }
- }
- return isNegative ? -result : result;
- }
- System.out.println(getNumber("142", 10));
- System.out.println(getNumber("-72", 10));
- System.out.println(getNumber("+19", 10));
- System.out.println(getNumber("-19.11", 10));
- System.out.println(getNumber("+19.16", 10));
- System.out.println(getNumber("+19+.16", 10));
- System.out.println(getNumber("+1.9+16", 10));
- System.out.println(getNumber("1.1.16", 10));
Add Comment
Please, Sign In to add comment