首先,我是java的初学者, 我正在尝试做vigenere密码 不使用文件阅读器。
这是我的输出:
program
Omgezet geeft dit:
y
Omgezet geeft dit:
yr
Omgezet geeft dit:
yrj
Omgezet geeft dit:
yrjg
Omgezet geeft dit:
yrjga
Omgezet geeft dit:
yrjgaa
Omgezet geeft dit:
yrjgaah
但我正试图获得这个输出:
program
Omgezet geeft dit:
yrjgaah
这是我的代码:
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String tekst = sc.nextLine();
String code = ""; //Variable om de code te laten werken.
for (int i = 0, j = 0; i < tekst.length(); i++) {
char ch = tekst.charAt(i);
if (ch < 'a' || ch > 'z') continue; //Negeert nummers.
code += (char)((ch + sleutel.charAt(j) - 2 * 'a') % 26 + 'a');
j = ++j % sleutel.length();
System.out.println("Omgezet geeft dit: ");
System.out.println(code);
}
}
答案 0 :(得分:0)
试试这个:
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String tekst = sc.nextLine();
String code = ""; //Variable om de code te laten werken.
for (int i = 0, j = 0; i < tekst.length(); i++) {
char ch = tekst.charAt(i);
if (ch < 'a' || ch > 'z') continue; //Negeert nummers.
code += (char)((ch + sleutel.charAt(j) - 2 * 'a') % 26 + 'a');
j = ++j % sleutel.length();
}
System.out.println("Omgezet geeft dit: ");
System.out.println(code);
}
Id est:将println句子放在循环之外。
答案 1 :(得分:0)
尝试在循环外打印
for (int i = 0, j = 0; i < tekst.length(); i++) {
char ch = tekst.charAt(i);
if (ch < 'a' || ch > 'z') continue; //Negeert nummers.
code += (char)((ch + sleutel.charAt(j) - 2 * 'a') % 26 + 'a');
j = ++j % sleutel.length();
}
System.out.println("Omgezet geeft dit: ");
System.out.println(code);