Skip to content

Commit e672121

Browse files
Replaced String with StringBuilder so multiple String Objects don't get created (TheAlgorithms#2238)
1 parent 0fd737e commit e672121

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

ciphers/Vigenere.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,51 @@
44
* A Java implementation of Vigenere Cipher.
55
*
66
* @author straiffix
7+
* @author beingmartinbmc
78
*/
89
public class Vigenere {
910

1011
public static String encrypt(final String message, final String key) {
1112

12-
String result = "";
13+
StringBuilder result = new StringBuilder();
1314

1415
for (int i = 0, j = 0; i < message.length(); i++) {
1516
char c = message.charAt(i);
1617
if (Character.isLetter(c)) {
1718
if (Character.isUpperCase(c)) {
18-
result += (char) ((c + key.toUpperCase().charAt(j) - 2 * 'A') % 26 + 'A');
19+
result.append((char) ((c + key.toUpperCase().charAt(j) - 2 * 'A') % 26 + 'A'));
1920

2021
} else {
21-
result += (char) ((c + key.toLowerCase().charAt(j) - 2 * 'a') % 26 + 'a');
22+
result.append((char) ((c + key.toLowerCase().charAt(j) - 2 * 'a') % 26 + 'a'));
2223
}
2324
} else {
24-
result += c;
25+
result.append(c);
2526
}
2627
j = ++j % key.length();
2728
}
28-
return result;
29+
return result.toString();
2930
}
3031

3132
public static String decrypt(final String message, final String key) {
32-
String result = "";
33+
StringBuilder result = new StringBuilder();
3334

3435
for (int i = 0, j = 0; i < message.length(); i++) {
3536

3637
char c = message.charAt(i);
3738
if (Character.isLetter(c)) {
3839
if (Character.isUpperCase(c)) {
39-
result += ((char) ('Z' - (25 - (c - key.toUpperCase().charAt(j))) % 26));
40+
result.append((char) ('Z' - (25 - (c - key.toUpperCase().charAt(j))) % 26));
4041

4142
} else {
42-
result += ((char) ('z' - (25 - (c - key.toLowerCase().charAt(j))) % 26));
43+
result.append((char) ('z' - (25 - (c - key.toLowerCase().charAt(j))) % 26));
4344
}
4445
} else {
45-
result += c;
46+
result.append(c);
4647
}
4748

4849
j = ++j % key.length();
4950
}
50-
return result;
51+
return result.toString();
5152
}
5253

5354
public static void main(String[] args) {

0 commit comments

Comments
 (0)