Google+ Followers

Connect

Get Updates Via Email

Enter your email address:

Delivered by FeedBurner

Friday, 18 October 2013

Compress Data using ASCII Values and Decompress data to get back original ASCII




public class StrAscii {
    
    public static void main(String[] args)
    {
     
        StrAscii.stringToBytesASCII("Apple");
    }
    
    public static byte[] stringToBytesASCII(String str) {
 byte[] b = new byte[str.length()];
 for (int i = 0; i < b.length; i++) {
     System.out.println("Before Ascii "+i+" ="+b[i]);
  b[i] = (byte) str.charAt(i);
  System.out.println("After Ascii "+i+" ="+b[i]);

  StrAscii sa=new StrAscii();
  
  System.out.println("Compressed data Bytes "+i+" ="+sa.compressbyte(b[i]));
  System.out.println("Compressed data Slots "+i+" ="+sa.compressslot(b[i]));
  System.out.println("Decompressed data "+i+" ="+ (sa.compressbyte(b[i])*9+sa.compressslot(b[i])));
 }

 return b;
}
 public long compressslot(long x)
 {
     x = x%9;
     return x;
 }
 public long compressbyte(long y)
 {
     y = y/9;
     return y;
 }
}

Output

Before Ascii 0 =0
After Ascii 0 =65
Compressed data Bytes 0 =7
Compressed data Slots 0 =2
Decompressed data 0 =65
Before Ascii 1 =0
After Ascii 1 =112
Compressed data Bytes 1 =12
Compressed data Slots 1 =4
Decompressed data 1 =112
Before Ascii 2 =0
After Ascii 2 =112
Compressed data Bytes 2 =12
Compressed data Slots 2 =4
Decompressed data 2 =112
Before Ascii 3 =0
After Ascii 3 =108
Compressed data Bytes 3 =12
Compressed data Slots 3 =0
Decompressed data 3 =108
Before Ascii 4 =0
After Ascii 4 =101
Compressed data Bytes 4 =11
Compressed data Slots 4 =2
Decompressed data 4 =101

Apple ===> Array [0... 4 ] => 0 = A =65, 1=p=112, 2=p=112, 3=l=108,4=e=101.

After Compression process
  compressing Data byte Values  { 7,12,12,12,11}
  compressing Data Slot Values  { 2,4,4,0,2 }

Decompression process very simple just like this =>(sa.compressbyte(b[i])*9+sa.compressslot(b[i]))=>7*9+2=> 65 =>A