Advertisement
Talar97

Lab PD (Szyfr Cezara)

Nov 16th, 2017
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. package com.Talar;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     public static void main(String[] args) {
  7.         Scanner zadanie = new Scanner(System.in);
  8.         System.out.print("Szyfr Cezara:\nPodaj łańcuch do zaszyfrowania: ");
  9.         String lancuch = zadanie.nextLine();
  10.         System.out.print("Podaj przesunięcie: ");
  11.         int p = zadanie.nextInt();
  12.         SzyfrCezara(lancuch,p);
  13.     }
  14.  
  15.     private static void SzyfrCezara(String lancuch, int p){
  16.         int kod = 0;
  17.         p %= 26; //Ograniczenie przesunięcia tylko do 26 pozycji
  18.         String szyfr = "";
  19.  
  20.         for(int i=0; i<lancuch.length(); i++){
  21.             //Warunki, żeby zaszyfrowany ciąg zawierał się w zbiorze liter (od a (97) do z (122))
  22.             // oraz zeby wykrywał spacje w ciągu
  23.             if(lancuch.charAt(i) == 32 - p || lancuch.charAt(i) == 32){
  24.                 kod = lancuch.charAt(i) + p;
  25.             }
  26.             else if(lancuch.charAt(i) > 122 - p){
  27.                 kod = lancuch.charAt(i) + p - 26;
  28.             }
  29.             else if(lancuch.charAt(i) < 97 - p){
  30.                 kod = lancuch.charAt(i) + p + 26;
  31.             }
  32.             else{
  33.                 kod = lancuch.charAt(i) + p;
  34.             }
  35.  
  36.             szyfr += (char)kod;
  37.         }
  38.  
  39.         System.out.println(lancuch + ", p="+p+"\n" + szyfr);
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement