Source code: org/alicebot/server/core/util/Substituter.java
1 // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.geocities.com/kpdus/jad.html
3 // Decompiler options: packimports(3)
4
5 package org.alicebot.server.core.util;
6
7 import java.util.*;
8
9 public class Substituter
10 {
11
12 public Substituter()
13 {
14 }
15
16 public static String replace(String s, String s1, String s2)
17 {
18 StringBuffer stringbuffer = new StringBuffer(" " + s2 + " ");
19 for(int i = stringbuffer.toString().indexOf(s); i != -1; i = stringbuffer.toString().indexOf(s))
20 stringbuffer.replace(i, i + s.length(), s1);
21
22 return stringbuffer.toString().trim();
23 }
24
25 public static String replaceIgnoreCase(String s, String s1, String s2)
26 {
27 StringBuffer stringbuffer = new StringBuffer(" " + s2 + " ");
28 s = s.toUpperCase();
29 for(int i = stringbuffer.toString().toUpperCase().indexOf(s); i != -1; i = stringbuffer.toString().toUpperCase().indexOf(s))
30 stringbuffer.replace(i, i + s.length(), s1);
31
32 return stringbuffer.toString().trim();
33 }
34
35 public static String applySubstitutions(HashMap hashmap, String s)
36 {
37 LinkedList linkedlist = new LinkedList();
38 linkedlist.add(" " + s + " ");
39 LinkedList linkedlist1 = new LinkedList();
40 for(Iterator iterator = hashmap.keySet().iterator(); iterator.hasNext();)
41 {
42 String s1 = (String)iterator.next();
43 for(ListIterator listiterator = linkedlist.listIterator(0); listiterator.hasNext();)
44 {
45 String s2 = (String)listiterator.next();
46 int i = s2.toUpperCase().indexOf(s1.toUpperCase());
47 if(i >= 0 && i < s2.length())
48 {
49 listiterator.set(s2.substring(0, i));
50 String s3 = (String)hashmap.get(s1);
51 linkedlist1.add(listiterator.nextIndex() - 1, s3);
52 if(i + s3.length() < s2.length())
53 listiterator.add(s2.substring(i + s1.length()));
54 else
55 listiterator.add("");
56 }
57 }
58
59 }
60
61 StringBuffer stringbuffer = new StringBuffer();
62 ListIterator listiterator1 = linkedlist.listIterator(0);
63 ListIterator listiterator2 = linkedlist1.listIterator(0);
64 while(listiterator1.hasNext())
65 {
66 stringbuffer.append(listiterator1.next());
67 if(listiterator2.hasNext())
68 stringbuffer.append(listiterator2.next());
69 }
70 int j = stringbuffer.length();
71 if(j >= 2)
72 {
73 int k = 0;
74 if(stringbuffer.charAt(0) == ' ')
75 k = 1;
76 if(stringbuffer.charAt(j - 1) == ' ')
77 j--;
78 if(k == j)
79 return "";
80 else
81 return stringbuffer.substring(k, j);
82 } else
83 {
84 return stringbuffer.toString();
85 }
86 }
87
88 private static final String SPACE = " ";
89 private static final String EMPTY_STRING = "";
90 }