Answer:
See Explaination
Step-by-step explanation:
public interface MessageEncoder
{
String encode(String s);
}
public class SubstitutionCipher implements MessageEncoder
{
private int shift;
public SubstitutionCipher(int shift)
{
this.shift=shift;
}
private char shift_char(char a)
{
return (char)((int)a+shift);
}
public String encode(String s)
{
String s1="";
for(int i=0;i<s.length();i++)
{
s1=s1+shift_char(s.charAt(i));
}
return s1;
}
}
public class ShuffleCipher implements MessageEncoder
{
private int shift;
public ShuffleCipher(int shift)
{
this.shift=shift;
}
private String shuffle(String s1,String s2)
{
String s3="";
int t=s1.length()+s2.length();
for(int i=0,j=0,k=0;i<t;i++)
{
if(i%2==0) {s3=s3+s1.charAt(j); j++;}
else {s3=s3+s2.charAt(k); k++;}
}
return s3;
}
public String encode(String s)
{
String s1="",s2="",s3="";
if(s.length()%2==0)
{
for(int i=0;i<s.length();i++)
{
if(i<s.length()/2)
s1=s1+s.charAt(i);
else
s2=s2+s.charAt(i);
}
}
else
{
for(int i=0;i<s.length();i++)
{
if(i<=s.length()/2)
s1=s1+s.charAt(i);
else
s2=s2+s.charAt(i);
}
}
for(int i=0;i<shift;i++)
s3=shuffle(s1,s2);
return s3;
}
}