Сразу скажу - в java начинающий, как сделать цикл более "грамотным" и "логичным"?
public void scanner(EnigmaService enigma, String cypher_mode){
//enigma - обьект, который имеет метод enchiper i deschiper
// cypher_mode - "-е" или "-d"
Scanner scan = new Scanner(System.in);
while(scan.hasNextLine()){
if(cypher_mode.equals("-e")){
System.out.println(enigma.encipher(scan.nextLine()));
}
else{
if(cypher_mode.equals("-d")){
System.out.println(enigma.decipher(scan.nextLine()));
}
}
}
Поскольку строковые значения -d
и -e
имеют отношение к параметрам командной строки, т.е. к по сути к пользовательскому интерфейсу, а не непосредственно к логике программы, можно завести enum.
public enum CipherMode {
ENCIPHER, DECIPHER;
}
Где-то у вас будет код вида:
CipherMode mode = null;
if (args.contains("-d")) { mode = DECIPHER }
if (args.contains("-e")) { mode = ENCIPHER; }
...
if (mode == null) {
System.out.println("Не указан режим работы шифра.");
return;
}
Дальше уже используйте этот enum:
public void scanner(EnigmaService enigma, CypherMode cipherMode){
Scanner scan = new Scanner(System.in);
while(scan.hasNextLine()){
String line = scan.nextLine();
switch(cipherMode) {
case ENCIPHER: enigma.encipher(line); break;
case DECIPHER: enigma.decipher(line); break;
}
}
PS. Подчеркивания в именах в Java не приняты.
Как получить(либо вывести в консоль) более глубокое значение ArrayList, например значение testVal из ArrayList-a parserJson, если он всегда имеет динамическую...
Пытаюсь постичь основы джавы, используя javarush, гугл, ютуб и прочие инструментыДошел до темы StackTrace и подзавис
Имеется некоторый проект на котором Spring Security получает форму логина (вообще вся рега скомуниздена от сюда ) До какого то момента все прекрасно...