Ich brauche bitte nocheinmal einen Rat.
Um das ganze weiterzuspinnen, habe ich die Überprüfung auf maximal 64 Zeichen in eine extra Methode gebaut.
Vorher wurde der Code direkt in der Methode "start" ausgeführt, nun läuft das ganze über oben benannte Methode, welche dann innerhalb Start ausgeführt wird. Als Parameter / Argument gebe ich einen String "language" an, damit er weiß welche Sprache nun benötigt wird.
Diese Methode "wrongUserEntryDiffLanguage" (verzeiht den Namen) funktioniert wie sie soll, aber der ein oder andere mag es von früher noch kennen.
Ich stehe am Anfang und alles was funktioniert ist erstmal toll, aber ich frage mich gerade ob meine Auslagerung in eine extra Methode hier so überhaupt Sinn macht !?
Ich sehe keinen Mehrwert an dieser Methode im Vergleich zum alten Vorgehen. Der Code wird/wurde auch hier einmal geschrieben.
[CODE lang="java" title="Applikation.java" highlight="28, 88..131"]import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.util.Scanner;
public class Application {
Scanner sc = new Scanner(System.in);
int numberOfChars;
int counter = 0;
String generatedPW;
public void start() {
System.out.println("Bitte wähle eine Sprache: ");
System.out.println("Please choose a language: ");
System.out.println("Veuillez choisir une langue: ");
System.out.println("DE / EN / FR");
String language = sc.next();
switch (language) {
case "DE", "de", "De":
System.out.println("Wie viele Zeichen soll ihr Passwort beinhalten?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("DE");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Soll das neue Passwort in die Zwischenablage kopiert werden (J/N) ?");
String copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("J")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("Neues Passwort: " + generatedPW);
break;
case "EN", "en", "En":
System.out.print("How many characters should your password contain?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("EN");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Should the new password be copied to the clipboard (Y/N) ?");
copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("Y")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("New password: " + generatedPW);
break;
case "FR", "fr", "Fr":
System.out.print("Combien de caractères votre mot de passe doit-il contenir ?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("FR");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Si le nouveau mot de passe doit être copié dans le presse-papiers (O/N) ?");
copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("O")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("Nouveau mot de passe: " + generatedPW);
}
}
public void wrongUserEntryDiffLanguage(String language) {
switch (language) {
case "DE":
while (numberOfChars > 64 && counter < 3) {
System.out.println("Die maximale Passwortlänge beträgt 64 Zeichen");
System.out.println("Wie viele Zeichen soll ihr Passwort beinhalten?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("Das Programm wird aufgrund mehrfacher Falscheingabe beendet");
System.exit(0);
}
break;
case "EN":
while (numberOfChars > 64 && counter < 3) {
System.out.println("The maximum password length is 64 characters");
System.out.println("How many characters should your password contain?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("The program is terminated due to multiple incorrect entries");
System.exit(0);
}
break;
case "FR":
while (numberOfChars > 64 && counter < 3) {
System.out.println("La longueur maximale du mot de passe est de 64 caractères");
System.out.println("Combien de caractères votre mot de passe doit-il contenir?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("Le programme est interrompu en raison de plusieurs entrées incorrectes.");
System.exit(0);
}
}
}
}[/CODE]
Zeile 28: Hier stand vorher der kompl. Code für die jeweilige Sprache nun greift die Methode
Zeile 88..131: Diese Methode habe ich gebaut und frage mich ob es Sinn macht xD
Um das ganze weiterzuspinnen, habe ich die Überprüfung auf maximal 64 Zeichen in eine extra Methode gebaut.
Vorher wurde der Code direkt in der Methode "start" ausgeführt, nun läuft das ganze über oben benannte Methode, welche dann innerhalb Start ausgeführt wird. Als Parameter / Argument gebe ich einen String "language" an, damit er weiß welche Sprache nun benötigt wird.
Diese Methode "wrongUserEntryDiffLanguage" (verzeiht den Namen) funktioniert wie sie soll, aber der ein oder andere mag es von früher noch kennen.
Ich stehe am Anfang und alles was funktioniert ist erstmal toll, aber ich frage mich gerade ob meine Auslagerung in eine extra Methode hier so überhaupt Sinn macht !?
Ich sehe keinen Mehrwert an dieser Methode im Vergleich zum alten Vorgehen. Der Code wird/wurde auch hier einmal geschrieben.
[CODE lang="java" title="Applikation.java" highlight="28, 88..131"]import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.util.Scanner;
public class Application {
Scanner sc = new Scanner(System.in);
int numberOfChars;
int counter = 0;
String generatedPW;
public void start() {
System.out.println("Bitte wähle eine Sprache: ");
System.out.println("Please choose a language: ");
System.out.println("Veuillez choisir une langue: ");
System.out.println("DE / EN / FR");
String language = sc.next();
switch (language) {
case "DE", "de", "De":
System.out.println("Wie viele Zeichen soll ihr Passwort beinhalten?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("DE");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Soll das neue Passwort in die Zwischenablage kopiert werden (J/N) ?");
String copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("J")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("Neues Passwort: " + generatedPW);
break;
case "EN", "en", "En":
System.out.print("How many characters should your password contain?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("EN");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Should the new password be copied to the clipboard (Y/N) ?");
copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("Y")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("New password: " + generatedPW);
break;
case "FR", "fr", "Fr":
System.out.print("Combien de caractères votre mot de passe doit-il contenir ?");
numberOfChars = sc.nextInt();
wrongUserEntryDiffLanguage("FR");
generatedPW = PasswordUtils.createPassword((numberOfChars));
System.out.println("Si le nouveau mot de passe doit être copié dans le presse-papiers (O/N) ?");
copyChoice = sc.next();
if (copyChoice.equalsIgnoreCase("O")) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(generatedPW), null);
}
System.out.println("Nouveau mot de passe: " + generatedPW);
}
}
public void wrongUserEntryDiffLanguage(String language) {
switch (language) {
case "DE":
while (numberOfChars > 64 && counter < 3) {
System.out.println("Die maximale Passwortlänge beträgt 64 Zeichen");
System.out.println("Wie viele Zeichen soll ihr Passwort beinhalten?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("Das Programm wird aufgrund mehrfacher Falscheingabe beendet");
System.exit(0);
}
break;
case "EN":
while (numberOfChars > 64 && counter < 3) {
System.out.println("The maximum password length is 64 characters");
System.out.println("How many characters should your password contain?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("The program is terminated due to multiple incorrect entries");
System.exit(0);
}
break;
case "FR":
while (numberOfChars > 64 && counter < 3) {
System.out.println("La longueur maximale du mot de passe est de 64 caractères");
System.out.println("Combien de caractères votre mot de passe doit-il contenir?");
numberOfChars = sc.nextInt();
counter++;
}
if (numberOfChars > 64 && counter == 3) {
System.out.println("Le programme est interrompu en raison de plusieurs entrées incorrectes.");
System.exit(0);
}
}
}
}[/CODE]
Zeile 28: Hier stand vorher der kompl. Code für die jeweilige Sprache nun greift die Methode
Zeile 88..131: Diese Methode habe ich gebaut und frage mich ob es Sinn macht xD