Guest User

Untitled

a guest
Jun 21st, 2016
112
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.company;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;
  9.  
  10. /**
  11.  * Created by Stella on 6/19/2016.
  12.  */
  13. public class CubicMessage {
  14.     public static void main(String[] args) throws IOException {
  15.  
  16.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  17.  
  18.         String line = reader.readLine();
  19.  
  20.         while (!line.equals("Over!")) {
  21.  
  22.             int length = Integer.parseInt(reader.readLine());
  23.             String regex = String.format("^\\s*(\\d+)([a-zA-Z]{%d})", length);
  24.             Pattern pattern = Pattern.compile(regex);
  25.             Matcher matcher = pattern.matcher(line);
  26.             boolean isValid = true;
  27.             ArrayList<Integer> indexes = new ArrayList<>();
  28.             if (matcher.find()) {
  29.                 String str = matcher.group(2);
  30.                 int index = line.lastIndexOf(str) + length;
  31.                 String newStr = line.substring(index, line.length());
  32.                 for (int i = 0; i < newStr.length(); i++) {
  33.                     if (Character.isAlphabetic(newStr.charAt(i))) {
  34.                         isValid = false;
  35.                         break;
  36.                     } else if (Character.isDigit(newStr.charAt(i))) {
  37.  
  38.                         indexes.add(Integer.valueOf(String.valueOf(newStr.charAt(i))));
  39.                     }
  40.                 }
  41.  
  42.                 if (isValid) {
  43.                     String temp = matcher.group(1);
  44.                     for (int i = 0; i < temp.length(); i++) {
  45.  
  46.                         indexes.add(i, Integer.valueOf(String.valueOf(temp.charAt(i))));
  47.                     }
  48.  
  49.  
  50.                     StringBuilder verif = new StringBuilder();
  51.                     for (int i = 0; i < indexes.size(); i++) {
  52.  
  53.                         int ind = indexes.get(i);
  54.                         if (ind >= 0 && ind < str.length()) {
  55.                             verif.append(str.charAt(ind));
  56.                         } else if (ind < 0 || ind >= str.length()) {
  57.  
  58.                             verif.append(" ");
  59.                         }
  60.  
  61.                     }
  62.  
  63.  
  64.                     System.out.printf("%s == %s%n", str, verif.toString());
  65.  
  66.                 }
  67.  
  68.             }
  69.  
  70.             line = reader.readLine();
  71.         }
  72.  
  73.  
  74.     }
  75. }
RAW Paste Data