Итак, прежде чем я объясню свой вопрос, я уже спросил, могу ли я использовать StringWriter для этого кода, однако нам сказали, что мы должны использовать StringBuilder. Текущее состояние инструкций ...
Когда пароли совпадают, с помощью StringBuilder запишите пароль в текстовый файл с именем Lab5.txt, но используйте следующее простое шифрование - запишите значение ASCII для каждого символа, разделенное запятая. Напишите 0 (ноль), чтобы обозначить конец пароля.
У меня есть общее представление о том, как это будет работать, однако я не совсем уверен, где go отсюда, так как я очень не знаком со StringBuilder, и не было много полезных руководств, и большинство сообщений stackoverflow по этому поводу предлагают использовать StringWriter.
Мой текущий код ...
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.List;
import java.io.PrintWriter;
public class Project5_Part1_Final {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Please enter password : ");
String pass = in.nextLine();
System.out.print("Please re-enter password: ");
String confirm = in.nextLine();
List<String> errorList = new ArrayList<String>();
while (!isValid(pass, confirm, errorList)) {
System.out.println("The password entered here is invalid");
for (String error : errorList) {
System.out.println(error);
}
System.out.print("Please enter password : ");
pass = in.nextLine();
System.out.print("Please re-enter password: ");
confirm = in.nextLine();
}
System.out.println("your password is: " + pass);
}
public static boolean isValid(String password, String confirm, List<String> errorList) {
int passLength = password.length();
int i;
Pattern specailChar = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Pattern digitCase = Pattern.compile("[0-9 ]");
errorList.clear();
boolean testing = true;
if (!password.equals(confirm)) {
errorList.add("password and confirm password does not match");
testing = false;
}
if (password.length() < 8) {
errorList.add("Invalid Password - Password must be at least 8 characters");
testing = false;
}
if (!digitCase.matcher(password).find()) {
errorList.add("Invalid password - Password must have at least 1 number");
testing = false;
}
if (!specailChar.matcher(password).find()) {
errorList.add("Invalid password - Password must have at least one special character");
testing = false;
}
for (i = 0; i < passLength; i++) {
char character = password.charAt(i);
int ascii = (int) character;
System.out.print(ascii + ",");
PrintWriter output = new PrintWriter("Lab5.txt");
StringBuilder sb = new StringBuilder();
sb.append(ascii);
output.println(sb.toString());
}
System.out.print(" 0 ");
return testing;
}
}
Мое текущее сообщение об ошибке. ..
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
PrintWriter cannot be resolved to a type
PrintWriter cannot be resolved to a type
at Project5_Part1_Final.isValid(Project5_Part1_Final.java:66)
at Project5_Part1_Final.main(Project5_Part1_Final.java:18)
Я знаю, что мне не хватает некоторых важных разделов кода, однако я не смог найти ни одной публикации или примеров, где StringBuilder и PrintWriter используются вместе, как это, все они либо просто PrintWriter, или PrintWriter и StringWriter. Любая форма помощи будет принята с благодарностью. Спасибо.