Skip to main content

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

Comments

Popular posts from this blog

Java Swing MySql JDBC: insert data into database

Program import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class insertswing implements ActionListener {   JFrame fr;JPanel po;   JLabel l1,l2,main;   JTextField tf1,tf2;   GridBagConstraints gbc;   GridBagLayout go;   JButton ok,exit; public insertswing(){ fr=new JFrame("New User Data "); Font f=new Font("Verdana",Font.BOLD,24); po=new JPanel(); fr.getContentPane().add(po); fr.setVisible(true); fr.setSize(1024,768); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); po.setBackground(Color.WHITE); go=new GridBagLayout(); gbc=new GridBagConstraints(); po.setLayout(go); main=new JLabel("Enter User Details "); main.setFont(f); l1=new JLabel("Name  :");tf1=new JTextField(20); l2=new JLabel("User Name  :");tf2=new JTextField(20); ok=new JButton("Accept"); exit=new JButton("Exit"); gbc.anchor=GridBagConstraints.NORTH;gbc.gridx=5;gbc.gridy=0; go.s...

JSP and Servlet Form Submission without page refresh show results on the same page using Jquery AJAX

Code Snippet HTML Form  <form id='ajaxform' name='ajaxform' action='ajaxformexample' method='post'>  First Name: <input type='text' id='firstname' name='firstname' size='30' required/><br/>  Last Name: <input type='text' id='lastname' name='lastname' size='30'required/><br/>  Email:  <input type='email' id='emailid' name='emailid' size='30'required/><br/>  Password:  <input type='password' id='pwd' name='pwd' size='30'required/><br/>  <input type='Submit'/>   <div id='content'> </div> </form> the above HTML Form uses post method and url servlet redirect to " ajaxformexample " Javascript Code  var form = $('#ajaxform'); // id of form tag  form.submit(function () {  $.ajax({  ...

Guidewire Related Interview Question and answers part 1

common Guidewire questions and answers 20 Guidewire BC Q&A Top 100 Guidewire Interview FAQ Guidewire Claimcenter 20 Interview Questions Guidewire Rating concepts