Advertisement
valerielashvili

04. Deserialize String

Aug 9th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.24 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.LinkedHashMap;
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class p04_Deserialize_String {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         String inputLine = scanner.nextLine();
  10.         LinkedHashMap<Character, ArrayList<String>> charIndexes = new LinkedHashMap<>();
  11.  
  12.         while (!"end".equals(inputLine)) {
  13.             char character = inputLine.charAt(0);
  14.             String strToSplit = inputLine.substring(2);
  15.             String[] indexes = strToSplit.split("/");
  16.  
  17.             charIndexes.putIfAbsent(character, new ArrayList<>());
  18.  
  19.             for (int i = 0; i < indexes.length; i++) {
  20.                 charIndexes.get(character).add(indexes[i]);
  21.             }
  22.  
  23.             inputLine = scanner.nextLine();
  24.         }
  25.  
  26.         int indexesSum = charIndexes.values()
  27.                 .stream()
  28.                 .flatMapToInt(e -> e.stream().mapToInt(Integer::valueOf)).sum();
  29.  
  30.         char[] charArr = new char[indexesSum];
  31.         charIndexes.entrySet().forEach(c -> c.getValue().forEach(v -> charArr[Integer.valueOf(v)] = c.getKey()));
  32.  
  33.         String outputString = new String(charArr);
  34.         System.out.println(outputString);
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement