Guest User

Untitled

a guest
Jan 18th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. String start = s.substring(0, s.indexOf("{"));
  2. String subString = s.substring(s.indexOf("{"), s.indexOf("}"));
  3. String end = s.substring(s.indexOf("}"));
  4.  
  5. String check = "Какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } " +
  6. "какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, " +
  7. "какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, " +
  8. "какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } " +
  9. "какой-то текст, какой-то текст, какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } " +
  10. "какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, " +
  11. "какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, " +
  12. "какой-то текст, какой-то текст";
  13.  
  14. String replaceRegex = "[A-Za-z]";
  15. String tagRegex = "\{.*?"+replaceRegex+".*?}";
  16.  
  17.  
  18. //Определяем мапу с соответствием символов.
  19.  
  20. Map<String,String> replaceConst = new HashMap<>();
  21. replaceConst.put("a","А");
  22. replaceConst.put("b","Б");
  23. //...
  24. replaceConst.put("j","Ъ");
  25.  
  26. Matcher tagMatcher = Pattern.compile(tagRegex).matcher(check);
  27.  
  28. while (tagMatcher.find()){
  29. String replaceString = tagMatcher.group();
  30. Matcher replaceMatcher = Pattern.compile(replaceRegex).matcher(replaceString);
  31. if (replaceMatcher.find()){
  32. replaceString = replaceString.replace(replaceMatcher.group(),replaceConst.get(replaceMatcher.group()));
  33. }
  34.  
  35. check = check.replace(tagMatcher.group(),replaceString);
  36. }
  37.  
  38. private static String replaceAll(String text,
  39. Map<Character, Character> symbols,
  40. String leftBorder,
  41. String rightBorder) {
  42.  
  43. String patternTemplate = Pattern.quote(leftBorder) + "(.*?)" + Pattern.quote(rightBorder);
  44.  
  45. Pattern pattern = Pattern.compile(patternTemplate);
  46. Matcher matcher = pattern.matcher(text);
  47. while (matcher.find()) {
  48. String replaceText = matcher.group();
  49. for (Entry<Character, Character> entry : symbols.entrySet())
  50. replaceText = replaceText.replace(entry.getKey(), entry.getValue());
  51.  
  52. text = text.replace(matcher.group(), replaceText);
  53. }
  54.  
  55. return text;
  56. }
  57.  
  58. Map<Character, Character> symbols = new HashMap<>();
  59. symbols.put('j', 'Ъ');
  60. symbols.put('к', 'K');
  61. symbols.put('з', 'З');
  62.  
  63. String result = replaceAll(text, symbols, "{", "}");
  64.  
  65. private static String replaceAll(String text,
  66. String replaceText,
  67. String substitutionText,
  68. String leftBorderText,
  69. String rightBorderText) {
  70.  
  71. String patternTemplate =
  72. "(?<=" + Pattern.quote(leftBorderText) + ")" +
  73. "(.*?)[" + replaceText + "](.*?)" +
  74. "(?=" + Pattern.quote(rightBorderText) + ")";
  75.  
  76. String substitutionTemplate = "$1" + substitutionText + "$2";
  77.  
  78. Pattern pattern = Pattern.compile(patternTemplate);
  79. Matcher matcher = pattern.matcher(text);
  80. if (matcher.find()) {
  81. String result = matcher.replaceAll(substitutionTemplate);
  82. return replaceAll(result, replaceText, substitutionText, leftBorderText, rightBorderText);
  83. } else
  84. return text;
  85. }
  86.  
  87. String replaceText = "j";
  88. String substitution = "Ъ";
  89.  
  90. String result = replaceAll(text, replaceText, substitution, "{", "}");
  91.  
  92. String value = "Какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } какой-то текст, какой-то текст, какой-то текст, какой-то текст, { в этомj блоке нужно заменить лjатиницу на кирjиллицу, } какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст, какой-то текст";
  93. String result = value.replaceAll("{.*?}","какой-то текст 2");
Add Comment
Please, Sign In to add comment