Egal, ob ich "Y" oder "N" in die Konsole eingeben springt es immer in die else-Anweisung, ist der Scanner falsch eingerichtet oder was ist das Problem mit diesem Skript?Scanner Ändern einer Zeichenfolge funktioniert nicht - Java
import java.util.*;
import java.lang.*;
import java.io.*;
class StartingClass {
public static void main(String arg[]){
System.out.println("The Best Encryption Bot 2016");
StringBuffer passWord = new StringBuffer();
Scanner input = new Scanner(System.in);
System.out.println("Please enter the phrase you want to encrypt: ");
passWord.append(input.nextLine());
System.out.println("Original: " + passWord);
for(int i = 0; i < passWord.length(); i++) {
int temp = 0;
temp = (int)passWord.charAt(i);
temp = (int) (temp * 4);
passWord.setCharAt(i, (char)temp);
}
System.out.println("Encrypted: " + passWord);
System.out.println("Do you want to unencrypt a phrase ? Y/N");
Scanner Encrypt = new Scanner(System.in);
String unencrypt = Encrypt.nextLine();
if (unencrypt == "Y") {
StringBuffer deCrypt = new StringBuffer();
Scanner deinput = new Scanner(System.in);
System.out.println("Please enter the phrase you want to Decrypt: ");
deCrypt.append(deinput.nextLine());
System.out.println("Original: " + deCrypt);
for(int i = 0; i < passWord.length(); i++) {
int temp = 0;
temp = (int)deCrypt.charAt(i);
temp = (int) (temp/4);
deCrypt.setCharAt(i, (char)temp);
}
System.out.println("UnEncrypted: " + passWord);
} else {
System.out.println("Ok");
}
}
}
Das Problem ist bei der if-Anweisung, wo unencrypt == "Y"
Sie haben bereits einen Scanner auf System.in. Warum einen anderen erklären? Und noch eins ... – Fildor
Sie vergleichen 2 Strings. Dies sollte mit 'equals (String)' wie 'enencrypt.equals (" Y ")' gemacht werden –