Guest User

Engine.java

a guest
Oct 29th, 2019
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. package RepeatedSubString;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Engine {
  6.  
  7.     public static boolean start() {
  8.         while (true) {
  9.             Scanner sc = new Scanner(System.in);
  10.             System.out.print("String: ");
  11.             String input = sc.nextLine();
  12.             int stringSize = input.length();
  13.             int subParts = 1;
  14.  
  15.             for (int i = 2; i <= stringSize / 2; i++) {
  16.                 if (stringSize % i == 0) {
  17.                     boolean result = subChecker(input, i);
  18.                     if (result) {
  19.                         subParts = i;
  20.                         break;
  21.                     }
  22.                 }
  23.             }
  24.  
  25.             System.out.println("res -> " + subParts + "\n");
  26.         }
  27.     }
  28.  
  29.     public static boolean subChecker(String input, int subParts) {
  30.         int stringSize = input.length();
  31.         Verifier verifier = new Verifier();
  32.         int stripSize = stringSize / subParts;
  33.         int lastSubIndex = 0;
  34.         boolean result = false;
  35.  
  36.         for (int j = 0; j < subParts; j++) {
  37.             String subString = input.substring(lastSubIndex, lastSubIndex + stripSize);
  38.             result = verifier.checkString(subString);
  39.             if (!result) break;
  40.             lastSubIndex += stripSize;
  41.         }
  42.  
  43.         return result;
  44.     }
  45.  
  46.     public static void main(String[] args) {
  47.         start();
  48.     }
  49. }
  50.  
  51.  
  52. class Verifier {
  53.  
  54.     private String StoredString;
  55.  
  56.     public boolean checkString(String aString) {
  57.         if (StoredString != null) {
  58.             return StoredString.equals(aString);
  59.         } else {
  60.             StoredString = aString;
  61.             return true;
  62.         }
  63.     }
  64. }
Add Comment
Please, Sign In to add comment