Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.41 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.Random;
  4.  
  5. /**
  6.  * @author Merc
  7.  */
  8. public class Main {
  9.    
  10.     static boolean isLetter(char c) {
  11.         return (c >= 'А' && c <= 'Я') || (c >= 'а' && c <= 'я')
  12.                 || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
  13.     }
  14.    
  15.     static ArrayList<String> split(String aText) {
  16.         ArrayList<String> r = new ArrayList<>();
  17.         int i = 0;
  18.         while (true) {
  19.             StringBuilder sb = new StringBuilder();
  20.             while (i < aText.length() && !isLetter(aText.charAt(i))) {                
  21.                 sb.append(aText.charAt(i++));
  22.             }
  23.             r.add(sb.toString());
  24.             if (i >= aText.length())
  25.                 break;
  26.            
  27.             sb = new StringBuilder();
  28.             while (i < aText.length() && isLetter(aText.charAt(i))) {                
  29.                 sb.append(aText.charAt(i++));
  30.             }
  31.             r.add(sb.toString());
  32.             if (i >= aText.length())
  33.                 break;
  34.         }
  35.         return r;
  36.     }
  37.    
  38.     static void dumpTexts(Iterable<String> aTexts) {
  39.         for (String s : aTexts) {
  40.             System.out.println("<" + s + ">");
  41.         }
  42.     }
  43.    
  44.     static void outTexts(Iterable<String> aTexts) {
  45.         for (String s : aTexts) {
  46.             System.out.print(s);
  47.         }
  48.         System.out.println();
  49.     }
  50.    
  51.     static String warp(String s, Random rnd) {
  52.         char[] vals = s.toCharArray();
  53.         int len1 = vals.length - 1;
  54.         int len2 = len1 - 1;
  55.         for (int i = 1; i < len2; ++i) {
  56.             int nRem = len1 - i;
  57.             int iSwap = i + rnd.nextInt(nRem);
  58.             char t = vals[i];
  59.             vals[i] = vals[iSwap];
  60.             vals[iSwap] = t;
  61.         }
  62.         return String.valueOf(vals);
  63.     }
  64.  
  65.     public static String text =
  66.             "По результатам исследований одного английского университета, "
  67.             + "не имеет значения, в каком порядке";
  68.    
  69.     public static void main(String[] args) {
  70.         ArrayList<String> splitTexts = split(text);
  71.         Random rnd = new Random(1234);
  72.         for (int i = 1; i < splitTexts.size(); i += 2) {
  73.             String s = warp(splitTexts.get(i), rnd);
  74.             splitTexts.set(i, s);
  75.         }        
  76.         outTexts(splitTexts);
  77.     }
  78.    
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement