NadezhdaGeorgieva

Data Type Finder

Sep 28th, 2020
807
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package bg.softuni.javafundamentals;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class ME01DataTypeFinder2 {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         String input = scanner.nextLine().trim().toLowerCase();
  9.  
  10.         while(!input.equals("end")) {
  11.             String type = "";
  12.  
  13.             boolean isNegative = false;
  14.             int integers = 0;
  15.             int dots = 0;
  16.             char firstChar = input.charAt(0);
  17.             int zero = 0;
  18.  
  19.             if(input.length() == 1){
  20.                 if(firstChar >= '0' && firstChar <= '9'){
  21.                     type = "integer";
  22.                 }else{
  23.                     type = "character";
  24.                 }
  25.  
  26.             }else {
  27.                 for (int i = 0; i < input.length(); i++) {
  28.                     char currentChar = input.charAt(i);
  29.  
  30.                     if (firstChar == '-') {
  31.                         isNegative = true;
  32.                     }
  33.                     if (currentChar == '.') {
  34.                         dots++;
  35.                     }
  36.                     if (currentChar == '0'){
  37.                         zero++;
  38.                     }
  39.                     if (currentChar >= '0' && currentChar <= '9') {
  40.                         integers++;
  41.                         if (((dots == 0 && input.length() == integers) && (zero != integers))||
  42.                                 ((dots == 0 && (input.length() == (integers + 1)) && isNegative
  43.                                 && (zero != integers)))) {
  44.                             type = "integer";
  45.                         } else if ((dots == 1 && input.length() == integers + 1) ||
  46.                                 (dots == 1 && (input.length() == integers + 2) && isNegative
  47.                                 && (zero != integers))) {
  48.                             type = "floating point";
  49.                         } else {
  50.                             type = "string";
  51.                         }
  52.                     } else {
  53.                         if (input.equals("true") || input.equals("false")) {
  54.                             type = "boolean";
  55.                         }else{
  56.                             type = "string";
  57.                         }
  58.                     }
  59.                 }
  60.             }
  61.             System.out.printf("%s is %s type%n", input, type);
  62.             input = scanner.nextLine().trim().toLowerCase();
  63.         }
  64.     }
  65. }
RAW Paste Data