2016-10-28 1 views
1

Ich bin auf der Suche nach einer einfachen Art der Programmierung eines Programms, das Zeilen durch das Vertauschen von Zeichenpaaren verschlüsselt, und diese Zeichen werden vom Benutzer eingegeben. So zum Beispiel, wenn Sie eine dieser schreiben:Java: Wie erstelle ich ein Programm, das Zeilen durch den Austausch von Zeichenpaaren verschlüsselt?

Original line   Encrypted line 
abcdef    badcfe 
The quick brown fox hT euqci krbwo nofx 
abc     bac 

Ich habe nur immer in der Lage gewesen, einfache Verschlüsselung zu erreichen, wie dies:

import java.util.Scanner; 
public class Encryption 
{ 
public static void main(String[] args){ 
    Scanner kb = new Scanner(System.in); 
    System.out.println("enter a line"); 
    String line = kb.nextLine(); 
    String encrypted=""; 
    for (int i=0; i<line.length(); i++){ 
     char c = line.charAt(i); 
     if (c == 'a') 
      encrypted += 'e'; 
     else if (c == 'e') 
      encrypted += 'a'; 
     else 
      encrypted += c; 
    } 
    System.out.println(encrypted); 
} 

Kann diese geändert werden, die Swapping Paare Verschlüsselung durchführen?

+0

Mit „Verschlüsselung“ meinen Sie Sie möchten in der Lage sein, wieder auf den ursprünglichen zu entschlüsseln? Das wäre wesentlich schwieriger. –

+0

Nein, ich möchte nur die Zeichen einfügen und die Verschlüsselung anzeigen lassen. Es muss nicht umgekehrt werden. –

+0

Es ist für eine Übung in meinem Lehrbuch. Es dient also keinem wirklichen Zweck, sondern ist eher ein Lernwerkzeug. –

Antwort

0

Dies könnte funktionieren ...

public class Test { 

    public static void main(String[] args){ 

     Scanner kb = new Scanner(System.in); 
     System.out.println("enter a line"); 
     String line = kb.nextLine(); 

     String encrypted = encriptInput(line); 

     System.out.println(encrypted); 
    } 

    private static String encriptInput(String line) { 

     String[] splitedChars = line.split("(?<=\\G.{2})"); 
     String outPut = ""; 

     for (int i = 0; i < splitedChars.length; i++) { 

      outPut = splitedChars[i].trim().length() < 2?outPut+splitedChars[i]:outPut+splitedChars[i].charAt(1)+splitedChars[i].charAt(0); 
     } 

     return outPut; 
    } 
} 
Verwandte Themen