sandeshMC

ENCODE A STRING USING LZW ALGORITHM

Feb 7th, 2014
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.30 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class LZW {
  4.  
  5.     public static void main(String[] args) {
  6.  
  7.         Scanner sc = new Scanner(System.in);
  8.         System.out.println("ENTER THE STRING YOU NEED TO ENCODE : ");
  9.         String s = new String(sc.next());
  10.         String d[] = new String[500];
  11.         for (int i = 0; i < 256; i++)
  12.             d[i] = new String((char) (i) + "");
  13.         int j = 0;
  14.         int l = 256;
  15.         String prefix = new String(s.charAt(j++) + "");
  16.         String ch = "";
  17.         int flag = 0;
  18.         while (j < s.length()) {
  19.             ch = new String(s.charAt(j++) + "");
  20.             flag = 0;
  21.             for (int k = 0; k < l; k++) {
  22.                 if ((prefix + ch).equals(d[k].toString())) {
  23.                     flag = 1;
  24.                     break;
  25.                 }
  26.             }
  27.             if (flag == 1)
  28.                 prefix = prefix + ch;
  29.             else {
  30.                 d[l] = prefix + ch;
  31.                 for (int m = 0; m < l; m++)
  32.                     if (prefix.equals(d[m].toString())) {
  33.                         System.out.print("<" + m + ">");
  34.                         break;
  35.                     }
  36.                 prefix = ch;
  37.                 l++;
  38.                 flag = 0;
  39.             }
  40.  
  41.         }
  42.         if (flag == 1) {
  43.             for (int q = 0; q < l; q++)
  44.                 if ((prefix).toString().equals(d[q].toString()))
  45.                     System.out.print("<" + q + ">");
  46.         } else {
  47.             for (int x = 0; x < l; x++)
  48.                 if (ch.toString().equals(d[x].toString()))
  49.                     System.out.println("<" + x + ">");
  50.         }
  51.     }
  52.  
  53. }
  54. /*
  55. OUTPUT:
  56. ENTER THE STRING YOU NEED TO ENCODE :
  57. BABCABABA
  58. <66><65><66><67><257><260>
  59. */
Advertisement
Add Comment
Please, Sign In to add comment