Saya memiliki kode di mana saya harus mengimplementasikan antarmuka, dan tujuannya adalah untuk mengambil string seperti mycookisred dan di dalamnya memasukkan karakter acak di antara masing-masing dari kata aslinya. Itu bisa menghalangi, dalam hal ini, mis. meynciovoksidswrbendn. Contoh lain, demi kelengkapan: string mycleverpassword bisa menjadi mxyschlmezvievrppeaysisvwcoorydc.

Saya tahu kode saya tidak tepat untuk tujuan itu, tetapi dapatkah seseorang membantu atau membimbing saya tentang apa yang harus dilakukan dari titik awal ini?

   import java.util.Random;

  public class password implements Encryptable
{
    private String message;
    private boolean encrypted;
    private int shift;
    private Random generator;

    public password(String msg)
    {
        message = msg;
        encrypted = false;
        generator = new Random();
        shift = generator.nextInt(10) + 5;
    }
    public void encrypt()
    {
        if (!encrypted)
        {
            String masked = "";
            for ( int index = 0; index < message.length(); index++)
            masked = masked + (char)(message.charAt(index) +shift);
            message = masked;
            encrypted = true;
        }
    }
    public String decrypt()
    {
        if (!encrypted)
        {
            String unmasked = "";
            for ( int index = 0; index < message.length(); index++)
            unmasked = unmasked + (char)(message.charAt(index) - shift);
            message = unmasked;
            encrypted = false;
        }
        return message;
    }
    public boolean isEncrypted()
    {
        return encrypted;
    }
    public String toString()
    {
        return message;
    }

}
public class passwordTest
{
  public static void main(String[] args)
  {
      password hide = new password("my clever password");
      System.out.println(hide);

      hide.encrypt();
      System.out.println(hide);

      hide.decrypt();
      System.out.println(hide);
  }


}


public interface Encryptable
{
    public void encrypt();
    public String decrypt();
}
3
exionoblivion 7 Agustus 2019, 19:16

1 menjawab

Jawaban Terbaik

Cukup gunakan ini untuk mengacak dan menormalkan String:

private String randomize(String s) {
    String re = "";
    int len = s.length();
    for(int i = 0; i < len - 1; i++) {
        char c = s.charAt(i);
        re += c;
        re += (char) (generator.nextInt('z' - 'a') + 'a');
    }
    re += s.charAt(len - 1);
    return re;
}

private String normalize(String s) {
    String re = "";
    for(int i = 0; i < s.length(); i+=2) {
        re += s.charAt(i);
    }
    return re;
}

Dan Kelas harus dimulai dengan karakter huruf besar. Anda tidak perlu, tetapi misalnya Eclipse akan menangis.

3
ILikeSahne 7 Agustus 2019, 16:33