gpt4 book ai didi

java - 随机编码器/解码器

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:20 28 4
gpt4 key购买 nike

我制作了这个程序,它是一个随 secret 码。

public class SaadAbdullahCipher {
private char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z'};
private String alphabetString = "abcdefghijklmnopqrstuvwxyz";
private int[] alphabetASCII = new int[alphabet.length];
private int[] cipherOne;
private int[] cipherTwo;
private String userMessage;
private int randomShiftKey;
private Formatter x;

public SaadAbdullahCipher(String uM, int rSK) {
userMessage = uM;
randomShiftKey = rSK;
cipherOne = new int[userMessage.length()];
}

public void genNewAlphabet() {
for(int i = 0; i < alphabet.length; i++) {
alphabetASCII[i] = alphabet[i] + randomShiftKey;
if(alphabetASCII[i] >= 122) {
alphabetASCII[i] = alphabetASCII[i] - 26;
}
}
}

public void cipher() {
String[] userMessageString = new String[userMessage.length()];
for(int i = 0; i < userMessage.length(); i++) {
userMessageString[i] = userMessage.substring(i, i+1);
}

for(int counterOne = 0; counterOne < userMessageString.length; counterOne++) {
cipherOne[counterOne] = alphabetString.indexOf(userMessageString[counterOne]);
}
cipherTwo = new int[alphabetASCII.length];
System.out.print("Your encoded message is: ");
for(int counterTwo = 0; counterTwo < cipherOne.length; counterTwo++) {
cipherTwo[counterTwo] = alphabetASCII[cipherOne[counterTwo]];
System.out.print((char)cipherTwo[counterTwo]);
}
}

public void printTextFile() {
try {
x = new Formatter("Cipher.txt");
}
catch(Exception bad) {
System.out.println("Your have an air er!");
}
for(int i = 0; i < cipherTwo.length; i++) {
x.format("%s", (char)cipherTwo[i]);
}
x.close();
}

public int[] getAlphabetASCII() {
return alphabetASCII;
}
}

主函数():

public class SaadAbdullahCipherTester {
public static void main(String [] args) {
Random ranNum = new Random();
Scanner input = new Scanner(System.in);

int randomShiftKey = 1 + ranNum.nextInt(24);

System.out.print("Please enter your message: ");
String userMessage = input.next();
System.out.println();

SaadAbdullahCipher test = new SaadAbdullahCipher(userMessage, randomShiftKey);
test.genNewAlphabet();
test.cipher();
test.printTextFile();

int[] randomABC = test.getAlphabetASCII();

SaadAbdullahCipherD testTwo = new SaadAbdullahCipherD(randomShiftKey, randomABC);
testTwo.openFile();
testTwo.readFile();
testTwo.closeFile();
testTwo.reverseAlphabet();
testTwo.decipher();
}
}

一切工作正常,但是当我打印结果时,我希望它全部以大写形式显示(例如,HI HOW ARE YOU)我应该在哪里添加 .toUpperCase

最佳答案

而不是这个代码块:

 System.out.print("Your encoded message is: ");  
for(int counterTwo = 0; counterTwo < cipherOne.length; counterTwo++) {
cipherTwo[counterTwo] = alphabetASCII[cipherOne[counterTwo]];
System.out.print((char)cipherTwo[counterTwo]);

这确实非常有限,您应该将字符数组转换为 String 对象:

String ciphertext = new String(cipherTwo);
// Get all the characters into a String object.
System.out.println("your encoded message is: " + ciphertext.toUpperCase());
// Print the output and use the method to make it upper case.

关于java - 随机编码器/解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865293/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com