Hi,
wie bekomme ich den return pass.toString in eine für print nutzbare / sinvolle variable?
Ich will in der Main Methode einmal das Objekt in die Zwischenablage kopieren :
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(password.createPassword((sc.nextInt()))), null);
und danach in der Konsole ausgeben. Wenn ich in der Konsole aber println("password.createPassword((sc.nextInt())) nutze, hat der Scanner den Wert schon vergessen --> Es gibt keinen output
[CODE lang="java" title="Random"]import java.security.SecureRandom;
import java.util.Scanner;
public class Random {
private final Scanner sc;
public Random(Scanner scanner) {
this.sc = scanner;
}
public static String createPassword(int length) {
final String allowedChars = "0123456789abcdefghijklmnopqrstuvwABCDEFGHIJKLMNOP!§$%&?*+#";
SecureRandom random = new SecureRandom();
StringBuilder pass = new StringBuilder(length);
for (int i = 0; i < length; i++) {
pass.append(allowedChars.charAt(random.nextInt(allowedChars.length())));
}
return pass.toString();
}
}
[/CODE]
[CODE lang="java" title="Main"]import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random password = new Random(sc);
System.out.print("Wie viele Zeichen soll ihr Passwort beinhalten?");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(password.createPassword((sc.nextInt()))), null);
System.out.println(password.createPassword(sc.nextInt()));
}
}
[/CODE]
Edit: Ich sehe gerade, dass hier der Scanner nicht das eigentliche Problem ist, sondern ich rufe in der printLine nochmal die RandomMethode auf, gebe allerdings keinen Wert ein. Daher keine Ausgabe in der Konsole.
Super, den Fehler habe ich verstanden, weiß aber nicht wie ich es hinbekomme ein und den selben Wert zweimal angezeigt zu bekommen ( Clipboard + Konsole)
Kann mir jemand den richtigen Weg deuten?
wie bekomme ich den return pass.toString in eine für print nutzbare / sinvolle variable?
Ich will in der Main Methode einmal das Objekt in die Zwischenablage kopieren :
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(password.createPassword((sc.nextInt()))), null);
und danach in der Konsole ausgeben. Wenn ich in der Konsole aber println("password.createPassword((sc.nextInt())) nutze, hat der Scanner den Wert schon vergessen --> Es gibt keinen output
[CODE lang="java" title="Random"]import java.security.SecureRandom;
import java.util.Scanner;
public class Random {
private final Scanner sc;
public Random(Scanner scanner) {
this.sc = scanner;
}
public static String createPassword(int length) {
final String allowedChars = "0123456789abcdefghijklmnopqrstuvwABCDEFGHIJKLMNOP!§$%&?*+#";
SecureRandom random = new SecureRandom();
StringBuilder pass = new StringBuilder(length);
for (int i = 0; i < length; i++) {
pass.append(allowedChars.charAt(random.nextInt(allowedChars.length())));
}
return pass.toString();
}
}
[/CODE]
[CODE lang="java" title="Main"]import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random password = new Random(sc);
System.out.print("Wie viele Zeichen soll ihr Passwort beinhalten?");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new StringSelection(password.createPassword((sc.nextInt()))), null);
System.out.println(password.createPassword(sc.nextInt()));
}
}
[/CODE]
Edit: Ich sehe gerade, dass hier der Scanner nicht das eigentliche Problem ist, sondern ich rufe in der printLine nochmal die RandomMethode auf, gebe allerdings keinen Wert ein. Daher keine Ausgabe in der Konsole.
Super, den Fehler habe ich verstanden, weiß aber nicht wie ich es hinbekomme ein und den selben Wert zweimal angezeigt zu bekommen ( Clipboard + Konsole)
Kann mir jemand den richtigen Weg deuten?