fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. Reader r = new Reader();
  13. r.wordAppend();
  14. r.wordEnd();
  15. // r.readAndSend();
  16. String readMe = "р ых. ых, ах sах gых укусила ах ыыыыыы ых ";
  17. r.foundIndex(readMe);
  18. System.out.println("");
  19.  
  20. }
  21. }
  22.  
  23. class Reader
  24. {
  25. String allText = "";
  26.  
  27. void readAndSend() throws IOException
  28. {
  29. Reader rr = new Reader();
  30. String fragment = "";
  31. int sum = 0;
  32.  
  33. try {
  34. BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("R.txt"), "Cp1251"));
  35.  
  36. int ch;
  37.  
  38. for (;;) {
  39.  
  40. ch = br.read();
  41. if (ch == -1) {
  42. break;
  43. }
  44. allText += String.valueOf((char) ch);
  45.  
  46. fragment += String.valueOf((char) ch);
  47.  
  48. sum++;
  49. if (sum % 1000 == 0) {
  50.  
  51. rr.foundIndex("р ых. ых, ах sах gых укусила ах ыыыыыы ых ");
  52. // r.foundIndex(fragment);
  53. // System.out.println(fragment);
  54. fragment = "";
  55.  
  56. }
  57.  
  58. }
  59.  
  60. br.close();
  61. }
  62.  
  63. catch (Exception e) {
  64. System.out.println("tshtsht");
  65.  
  66. e.printStackTrace();
  67. }
  68.  
  69. }
  70. ArrayList<String> wordEnd = new ArrayList();
  71.  
  72. void wordEnd()
  73. {
  74. wordEnd.add("ых");
  75. wordEnd.add("ах");
  76. wordEnd.add("ла");
  77. wordEnd.add("ся");
  78.  
  79. }
  80. ArrayList<String> wordAppend = new ArrayList();
  81.  
  82. void wordAppend()
  83. {
  84. wordAppend.add(" ");
  85. wordAppend.add(".");
  86. wordAppend.add(",");
  87. }
  88.  
  89. void foundIndex(String read) throws IOException// получать строку
  90. {
  91.  
  92. int addWordCount = 0;
  93. int countChangeEnd = 0;
  94. int goEnd = 0;
  95. int countArrayEnd = 0;
  96.  
  97. String readMe = read;
  98.  
  99. for (int indexEnd = 0;; indexEnd += 1) {
  100.  
  101. indexEnd = readMe.indexOf(wordEnd.get(countArrayEnd) + wordAppend.get(countChangeEnd), indexEnd); // окончания + . или пробел
  102.  
  103. if (indexEnd == -1) {
  104.  
  105. if (countArrayEnd + 1 == wordEnd.size()) {
  106.  
  107. if (countChangeEnd + 1 == wordAppend.size()) {
  108.  
  109. break;
  110. }
  111.  
  112. countArrayEnd = 0;
  113. countChangeEnd++;
  114.  
  115. continue;
  116. }
  117.  
  118. countArrayEnd++;
  119. continue;
  120. }
  121.  
  122. int indexStart = readMe.lastIndexOf(" ", indexEnd);
  123. System.out.println(indexStart + " // " + indexEnd);
  124. if (wordEnd.get(countArrayEnd).equals("ла") || wordEnd.get(countArrayEnd).equals("ли") || wordEnd.get(countArrayEnd).equals("ло")) {
  125. System.out.println(readMe.substring(indexStart + 1, indexEnd + wordEnd.get(countArrayEnd).length() - 1));
  126. }
  127. else {
  128. System.out.println(readMe.substring(indexStart + 1, indexEnd + wordEnd.get(countArrayEnd).length()));
  129. }
  130. }
  131.  
  132. }
  133. }
  134.  
Success #stdin #stdout 0.11s 36316KB
stdin
Standard input is empty
stdout
16 // 18
gых
38 // 39
ых
9 // 10
ах
12 // 14
sах
28 // 29
ах
20 // 26
укусил
1 // 2
ых
5 // 6
ых