Cha*_*ive -2 java java.util.scanner
我想做某种加密,但是如果我输入a,它就不会改为I,它只会打印一个.为什么是这样?
import java.util.Scanner;
public class Encryption
{
public static void main(String[] args)
{
String normal = "", encoded, userResponse = "";
Scanner sc = new Scanner(System.in);
System.out.println("Are you encoding or decoding? E or D");
userResponse = sc.next();
if (userResponse.equalsIgnoreCase("e"))
{
System.out.println("Enter the text that you want to encode:");
normal = sc.next();
encoded = normal.replace('a', 'i');
encoded = normal.replace('b', 's');
encoded = normal.replace('g', 'e');
encoded = normal.replace('k', 'f');
encoded = normal.replace('p', 'h');
encoded = normal.replace('c', 'z');
encoded = normal.replace('m', 'r');
encoded = normal.replace('n', 't');
encoded = normal.replace('o', 'd');
encoded = normal.replace('l', 'j');
System.out.println(encoded);
}
else if (userResponse.equalsIgnoreCase("d"))
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于您normal在所有调用中继续使用replace,因此只有最后一个调用有效,因为它会覆盖所有其他更改.
删除normal变量,分配encoded = sc.next();和使用encoded每次调用replace,即
encoded = sc.next();
encoded = encoded.replace('a', 'i');
encoded = encoded.replace('b', 's');
encoded = encoded.replace('g', 'e');
... // And so on
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |