Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package RepeatedSubString;
- import java.util.Scanner;
- public class Engine {
- public static boolean start() {
- while (true) {
- Scanner sc = new Scanner(System.in);
- System.out.print("String: ");
- String input = sc.nextLine();
- int stringSize = input.length();
- int subParts = 1;
- for (int i = 2; i <= stringSize / 2; i++) {
- if (stringSize % i == 0) {
- boolean result = subChecker(input, i);
- if (result) {
- subParts = i;
- break;
- }
- }
- }
- System.out.println("res -> " + subParts + "\n");
- }
- }
- public static boolean subChecker(String input, int subParts) {
- int stringSize = input.length();
- Verifier verifier = new Verifier();
- int stripSize = stringSize / subParts;
- int lastSubIndex = 0;
- boolean result = false;
- for (int j = 0; j < subParts; j++) {
- String subString = input.substring(lastSubIndex, lastSubIndex + stripSize);
- result = verifier.checkString(subString);
- if (!result) break;
- lastSubIndex += stripSize;
- }
- return result;
- }
- public static void main(String[] args) {
- start();
- }
- }
- class Verifier {
- private String StoredString;
- public boolean checkString(String aString) {
- if (StoredString != null) {
- return StoredString.equals(aString);
- } else {
- StoredString = aString;
- return true;
- }
- }
- }
Add Comment
Please, Sign In to add comment