1 package forum; 2 3 public class Filter { 4 5 6 public static String filterAll(String string) 7 { 8 string = filterHtmlTag( string ); 9 string = filterBreaks( string ); 10 string = filterTextStyle( string ); 11 string = filterImage( string ); 12 string = filterURL( string ); 13 string = filterEmoticons( string ); 14 return string; 15 } 16 17 public static String filterHtmlTag(String string) 18 { 19 if(string == null || string.length() < 1) 20 { 21 return string; 22 } 23 24 StringBuffer source = new StringBuffer (string); 25 26 for(int i = 0; i < source.length(); i++) 27 { 28 char c = source.charAt(i); 29 if(c == '>') 30 { 31 source.replace(i,i+1,">"); 32 } 33 else if(c == '<') 34 { 35 source.replace(i,i+1,"<"); 36 } 37 else if(c == '&') 38 { 39 source.replace(i,i+1,"&"); 40 } 41 } 42 43 44 return source.toString(); 45 } 46 47 public static String filterBreaks(String string) 48 { 49 if(string == null || string.length() < 1) 50 { 51 return string; 52 } 53 54 StringBuffer source = new StringBuffer (string); 55 56 for(int i = 0; i < source.length(); i++) 57 { 58 if(source.charAt(i) == '\n') 59 { 60 source.replace(i,i+1,"<br>"); 61 } 62 } 63 64 return source.toString(); 65 } 66 67 public static String filterTextStyle(String string) 68 { 69 if(string == null || string.length() < 1) 70 { 71 return string; 72 } 73 74 StringBuffer source = new StringBuffer (string); 75 76 char charArray[] = {'B','b','I','i','U','u','S','s'}; 77 78 for(int i = 0; i < source.length(); i++) 79 { 80 if(source.charAt(i) == '[' && source.charAt(i+2) == ']') 81 { 82 for(int j = 0; j < charArray.length; j++) 83 { 84 if(source.charAt(i+1) == charArray[j]) 85 { 86 source.replace(i,i+3,"<"+ charArray[j] +">"); 87 } 88 } 89 } 90 else if(source.charAt(i) == '[' && source.charAt(i+1) == '/' && source.charAt(i+3) == ']') 91 { 92 for(int j = 0; j < charArray.length; j++) 93 { 94 if(source.charAt(i+2) == charArray[j]) 95 { 96 source.replace(i,i+4,"</"+ charArray[j] +">"); 97 } 98 } 99 } 100 } 101 return source.toString(); 102 } 103 104 public static String filterImage(String string) 105 { 106 if(string == null || string.length() < 1) 107 { 108 return string; 109 } 110 111 StringBuffer source = new StringBuffer ( string ); 112 113 for(int i = 0; i < source.length(); i++) 114 { 115 if(source.charAt(i) == '[') 116 { 117 for( int j = i+1;j < (source.length());j++) 118 { 119 if(source.charAt(j) == ']') 120 { 121 String subString = source.substring(i+1,j); 122 if(subString.equals("IMG") || subString.equals("img")) 123 { 124 source.replace(i,j+1,"<img SRC="); 125 }else if(subString.equals("/IMG") || subString.equals("/img")) 126 { 127 source.replace(i,j+1,">"); 128 } 129 } 130 } 131 132 } 133 } 134 135 136 return source.toString(); 137 } 138 139 public static String filterURL(String string) 140 { 141 if(string == null || string.length() < 1) 142 { 143 return string; 144 } 145 146 StringBuffer source = new StringBuffer ( string ); 147 148 for(int i = 0; i < source.length(); i++) 149 { 150 if(source.charAt(i) == '[') 151 { 152 for( int j = i+1;j < (source.length());j++) 153 { 154 if(source.charAt(j) == ']') 155 { 156 String subString = source.substring(i+1,i+5); 157 if(subString.equals("URL=") || subString.equals("url=")) 158 { 159 source.replace(i,5,"<a HREF="); 160 source.replace(j+3,j+4," target=new>"); 161 }else if(subString.equals("/URL") || subString.equals("/URL")) 162 { 163 source.replace(i,j+1,"</a>"); 164 } 165 } 166 } 167 168 } 169 } 170 return source.toString(); 171 } 172 173 public static String filterEmoticons(String string) 174 { 175 StringBuffer buffer = new StringBuffer ( string ); 176 177 for(int i = 0; i < buffer.length(); i++){ 178 if(buffer.charAt(i) == ':'){ 179 for( int j = i+1;j < (buffer.length());j++){ 180 if(buffer.charAt(j) == ':'){ 181 String subString = buffer.substring(i+1,j); 182 if(subString.equals("mellow")){ 183 buffer.replace(i,j+1,"<img SRC=./emoticons/mellow.gif border=0>"); 184 }else if(subString.equals("huh")){ 185 buffer.replace(i,j+1,"<img SRC=./emoticons/huh.gif border=0>"); 186 }else if(subString.equals("rolleyes")){ 187 buffer.replace(i,j+1,"<img SRC=./emoticons/rolleyes.gif border=0>"); 188 }else if(subString.equals("lol")){ 189 buffer.replace(i,j+1,"<img SRC=./emoticons/lol.gif border=0>"); 190 }else if(subString.equals("wub")){ 191 buffer.replace(i,j+1,"<img SRC=./emoticons/wub.gif border=0>"); 192 }else if(subString.equals("angry")){ 193 buffer.replace(i,j+1,"<img SRC=./emoticons/angry.gif border=0>"); 194 }else if(subString.equals("unsure")){ 195 buffer.replace(i,j+1,"<img SRC=./emoticons/unsure.gif border=0>"); 196 }else if(subString.equals("wacko")){ 197 buffer.replace(i,j+1,"<img SRC=./emoticons/wacko.gif border=0>"); 198 }else if(subString.equals("blink")){ 199 buffer.replace(i,j+1,"<img SRC=./emoticons/blink.gif border=0>"); 200 }else if(subString.equals("ph34r")){ 201 buffer.replace(i,j+1,"<img SRC=./emoticons/ph34r.gif border=0>"); 202 }else if(subString.equals("bounce")){ 203 buffer.replace(i,j+1,"<img SRC=./emoticons/bounce.gif border=0>"); 204 }else if(subString.equals("fuck")){ 205 buffer.replace(i,j+1,"<img SRC=./emoticons/fuck.gif border=0>"); 206 }else if(subString.equals("scream")){ 207 buffer.replace(i,j+1,"<img SRC=./emoticons/scream.gif border=0>"); 208 }else if(subString.equals("silly")){ 209 buffer.replace(i,j+1,"<img SRC=./emoticons/silly.gif border=0>"); 210 }else if(subString.equals("frusty")){ 211 buffer.replace(i,j+1,"<img SRC=./emoticons/frusty.gif border=0>"); 212 }else if(subString.equals("kwijl")){ 213 buffer.replace(i,j+1,"<img SRC=./emoticons/kwijl.gif border=0>"); 214 }else if(subString.equals("puke")){ 215 buffer.replace(i,j+1,"<img SRC=./emoticons/puke.gif border=0>"); 216 }else if(subString.equals("bid")){ 217 buffer.replace(i,j+1,"<img SRC=./emoticons/bid.gif border=0>"); 218 }else if(subString.equals("hammer")){ 219 buffer.replace(i,j+1,"<img SRC=./emoticons/hammer.gif border=0>"); 220 }else if(subString.equals("good")){ 221 buffer.replace(i,j+1,"<img SRC=./emoticons/good.gif border=0>"); 222 } 223 } 224 } 225 } 226 } 227 return buffer.toString(); 228 } 229 230 231 232 } | Popular Tags |