From c1458d0e6c3cf7c83466bcf91bbd830c8e91956d Mon Sep 17 00:00:00 2001 From: Ankit Sharma Date: Sat, 5 Jun 2021 14:12:36 +0530 Subject: [PATCH] Replaced String with StringBuilder so multiple String Objects don't get created --- ciphers/Vigenere.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ciphers/Vigenere.java b/ciphers/Vigenere.java index 05d2952c313d..6fccf91d1b74 100644 --- a/ciphers/Vigenere.java +++ b/ciphers/Vigenere.java @@ -4,50 +4,51 @@ * A Java implementation of Vigenere Cipher. * * @author straiffix + * @author beingmartinbmc */ public class Vigenere { public static String encrypt(final String message, final String key) { - String result = ""; + StringBuilder result = new StringBuilder(); for (int i = 0, j = 0; i < message.length(); i++) { char c = message.charAt(i); if (Character.isLetter(c)) { if (Character.isUpperCase(c)) { - result += (char) ((c + key.toUpperCase().charAt(j) - 2 * 'A') % 26 + 'A'); + result.append((char) ((c + key.toUpperCase().charAt(j) - 2 * 'A') % 26 + 'A')); } else { - result += (char) ((c + key.toLowerCase().charAt(j) - 2 * 'a') % 26 + 'a'); + result.append((char) ((c + key.toLowerCase().charAt(j) - 2 * 'a') % 26 + 'a')); } } else { - result += c; + result.append(c); } j = ++j % key.length(); } - return result; + return result.toString(); } public static String decrypt(final String message, final String key) { - String result = ""; + StringBuilder result = new StringBuilder(); for (int i = 0, j = 0; i < message.length(); i++) { char c = message.charAt(i); if (Character.isLetter(c)) { if (Character.isUpperCase(c)) { - result += ((char) ('Z' - (25 - (c - key.toUpperCase().charAt(j))) % 26)); + result.append((char) ('Z' - (25 - (c - key.toUpperCase().charAt(j))) % 26)); } else { - result += ((char) ('z' - (25 - (c - key.toLowerCase().charAt(j))) % 26)); + result.append((char) ('z' - (25 - (c - key.toLowerCase().charAt(j))) % 26)); } } else { - result += c; + result.append(c); } j = ++j % key.length(); } - return result; + return result.toString(); } public static void main(String[] args) {