Czy zmienilibyście coś w tym kodzie na "lepsze" ??
package napisy;
/*
Zbiór Zadan 7
Zad 4
Pobieraj od użytkownika napis, dopóki na pozycjach parzystych nie będą występowały znaki o parzystych kodach ASCII,
a na pozycjach nieparzystych znaki o nieparzystych kodach ASCII. Napis musi również posiadać parzystą ilość znaków.
Następnie zastosuj proste szyfrowanie napisu, które zamieni dwa sąsiadujące ze sobą znaki miejscami.
Otrzymany zaszyfrowany napis zapisz do pliku tekstowego o nazwie napisy_zad5.
*/
import javax.print.DocFlavor;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class Zad5 {
static String getString() {
Scanner sc = new Scanner(System.in);
System.out.println("Podaj napis. Na parzystym indeksie parzysty koD ASCII na nieparzystym odwrotnie. Parzysta liczba znakow");
String string = sc.nextLine();
if (!checkString(string) || !(string.length() % 2 == 0)) {
throw new IllegalArgumentException("String is not correct");
}
return string;
}
static boolean checkString(String string) {
if(string == null){
throw new IllegalArgumentException("String is null");
}
char[] charArray = string.toCharArray();
for (int i = 0; i < charArray.length; i++) {
if (i % 2 == 0) {
//na indeksach parzystych powinny być ASCII parzyste
if (evenASCII(charArray[i])) {
} else
return false;
} else {
//na indeksach nieparzystych powinny być ASCII nieparzyste
if (evenASCII(charArray[i])) {
return false;
}
}
}
return true;
}
static boolean evenASCII(char letter) {
int decLetter = letter;
if (decLetter % 2 == 0) {
return true;
} else return false;
}
static String encryption2(String string) {
if(string == null){
throw new IllegalArgumentException("String is null");
}
char[] charArr = string.toCharArray();
char temp;
for (int i = 0; i < charArr.length - 1; i++) {
if (i % 2 == 0) {
temp = charArr[i];
charArr[i] = charArr[i + 1];
charArr[i + 1] = temp;
}
}
return new String(charArr);
}
static void fileWriter(String string) {
if(string == null){
throw new IllegalArgumentException("string is null");
}
try (
FileWriter fileWriter = new FileWriter("napisy_Zad5");
PrintWriter printWriter = new PrintWriter(fileWriter)) {
printWriter.println(string);
} catch (Exception e) {
throw new IllegalArgumentException("sgfdfg");
}
}
public static void main(String[] args) {
String string = getString();
String encryptedString = encryption2(string);
fileWriter(encryptedString);
}
}