Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Random;
- /**
- * @author Merc
- */
- public class Main {
- static boolean isLetter(char c) {
- return (c >= 'А' && c <= 'Я') || (c >= 'а' && c <= 'я')
- || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
- }
- static ArrayList<String> split(String aText) {
- ArrayList<String> r = new ArrayList<>();
- int i = 0;
- while (true) {
- StringBuilder sb = new StringBuilder();
- while (i < aText.length() && !isLetter(aText.charAt(i))) {
- sb.append(aText.charAt(i++));
- }
- r.add(sb.toString());
- if (i >= aText.length())
- break;
- sb = new StringBuilder();
- while (i < aText.length() && isLetter(aText.charAt(i))) {
- sb.append(aText.charAt(i++));
- }
- r.add(sb.toString());
- if (i >= aText.length())
- break;
- }
- return r;
- }
- static void dumpTexts(Iterable<String> aTexts) {
- for (String s : aTexts) {
- System.out.println("<" + s + ">");
- }
- }
- static void outTexts(Iterable<String> aTexts) {
- for (String s : aTexts) {
- System.out.print(s);
- }
- System.out.println();
- }
- static String warp(String s, Random rnd) {
- char[] vals = s.toCharArray();
- int len1 = vals.length - 1;
- int len2 = len1 - 1;
- for (int i = 1; i < len2; ++i) {
- int nRem = len1 - i;
- int iSwap = i + rnd.nextInt(nRem);
- char t = vals[i];
- vals[i] = vals[iSwap];
- vals[iSwap] = t;
- }
- return String.valueOf(vals);
- }
- public static String text =
- "По результатам исследований одного английского университета, "
- + "не имеет значения, в каком порядке";
- public static void main(String[] args) {
- ArrayList<String> splitTexts = split(text);
- Random rnd = new Random(1234);
- for (int i = 1; i < splitTexts.size(); i += 2) {
- String s = warp(splitTexts.get(i), rnd);
- splitTexts.set(i, s);
- }
- outTexts(splitTexts);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement