Advertisement
razvanth21

Untitled

May 7th, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.  
  4. public class FMI {
  5.  
  6. public static final String FLOATING_POINT_REGEX = "^[-+]?[0-9]*\\.[0-9]+([eE][-+]?[0-9]+)?$";
  7.  
  8. public static void getDataTypeForNumber(String min, String max) {
  9. Pattern p = Pattern.compile(FLOATING_POINT_REGEX);
  10.  
  11. if (p.matcher(min).find() || p.matcher(max).find()) {
  12. double minVal = Double.valueOf(min);
  13. double maxVal = Double.valueOf(max);
  14.  
  15. if (Float.MIN_VALUE <= minVal && maxVal <= Float.MAX_VALUE) {
  16. System.out.println("float32");
  17. } else {
  18. System.out.println("float64");
  19. }
  20. } else {
  21. if (Integer.valueOf(min) == 0 && Integer.valueOf(max) == 1) {
  22. System.out.println("Bool");
  23. } else {
  24. long minVal = Long.valueOf(min);
  25. long maxVal = Long.valueOf(max);
  26.  
  27. if (maxVal <= Byte.MAX_VALUE) {
  28. if (minVal == 0) {
  29. System.out.println("UInt8");
  30. return;
  31. } else if (Byte.MIN_VALUE <= minVal) {
  32. System.out.println("Int8");
  33. return;
  34. }
  35. } else if (maxVal <= Short.MAX_VALUE) {
  36. if (minVal == 0) {
  37. System.out.println("UInt16");
  38. return;
  39. } else if (Short.MIN_VALUE <= minVal) {
  40. System.out.println("Int16");
  41. return;
  42. }
  43. } else if (minVal == 0) {
  44. System.out.println("UInt32");
  45. return;
  46. } else if (Integer.MIN_VALUE <= minVal) {
  47. System.out.println("Int32");
  48. return;
  49. }
  50. }
  51. }
  52. }
  53.  
  54. public static void main(String[] args) {
  55. FMI.getDataTypeForNumber("-15", "100000000");
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement