gpt4 book ai didi

Java 将 5 个字母的单词转换为数字需要很长时间

转载 作者:行者123 更新时间:2023-12-01 11:57:14 25 4
gpt4 key购买 nike

在开始之前,我想告诉您,我是 Java 的初学者,所以请原谅我的无知错误。我一直在尝试编写一个应用程序来加密消息。在此过程中,输入将转换为数字以允许数学表达式。问题出在尝试转换时。实际的代码确实可以工作,但是需要相当长的时间来转换 5 个字母的单词,即单词“Hello”(大约需要 10 秒左右)。以下是转换输入的方法。 `

public static  void encrypt(String plainText) {

Random random = new Random();

plainText =plainText.toUpperCase();
char[] storedInput = plainText.toCharArray();
int[] convertedInput = new int[plainText.length()];


for (int indexSelector = 0, comparisonNumber = 1; indexSelector < plainText.length(); comparisonNumber++) {
if( storedInput[indexSelector] == ' ') {
System.out.print(" <SPACE> ");
}
else {
if( ((int) storedInput[indexSelector]-64) == comparisonNumber) {
int converter = storedInput[indexSelector] - 64;
convertedInput[indexSelector] = converter;
System.out.print(convertedInput[indexSelector]);

}
else {
continue;
}
}
}
}

这段代码接受一个输入(hello),将所有字母转换为大写,然后当我得到整数时,我减去 64,因为它返回 ASCII 整数。之后A变成1,B变成2,C变成3等等......当我尝试转换 hello(或任何其他单词)时,至少需要 8 秒。关于原因有什么建议吗?

最佳答案

您需要简化您的程序。 comparisonNumber 会给您带来严重的问题,并且您通常应该避免在 for 循环中使用多个变量,除非您真的知道自己在做什么。即使在专业环境中,我也会认为 for 循环中的 , 是一个需要合理化的问题。

在您的情况下,您正在循环比较comparisonNumber,但除了验证您击中了正确的数字之外,从未将其用于任何其他用途,然后忽略该值并执行与其无关的操作。由于您没有重置该值,因此它会在继续处理下一个字母之前循环遍历所有可能的值。

这是一个可能更接近您正在寻找的版本,我刚刚删除了该变量并保留其他所有内容不变。

public static  void encrypt(String plainText) {

Random random = new Random();

plainText.toUpperCase();
char[] storedInput = plainText.toCharArray();
int[] convertedInput = new int[plainText.length()];


for (int indexSelector = 0; indexSelector < plainText.length(); indexSelector++) {
if( storedInput[indexSelector] == ' ') {
System.out.print(" <SPACE> ");
} else {
int converter = storedInput[indexSelector] - 64;
convertedInput[indexSelector] = converter;
System.out.print(convertedInput[indexSelector]);
indexSelector++;
}
}

关于Java 将 5 个字母的单词转换为数字需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356024/

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