程序MR";“替换和转换字符串”;JAVA
下面的程序包含一个名为“decrypt()”的空方法,该方法接受一个字符串参数。此方法将使用表示加密数字的字符串调用,您需要实现将其转换为双精度值的逻辑。为方便起见,我们提供了一个二维字符数组及其表示的实际数字。如果愿意,可以使用该数组 我们期望的是:如果我们使用字符串“b.aab”调用“decrypt()”方法,我们期望您返回1.001的双精度值。如果我们使用字符串“ab.a”调用“decrypt()”方法,我们希望您返回1.0的双精度值程序MR";“替换和转换字符串”;JAVA,java,Java,下面的程序包含一个名为“decrypt()”的空方法,该方法接受一个字符串参数。此方法将使用表示加密数字的字符串调用,您需要实现将其转换为双精度值的逻辑。为方便起见,我们提供了一个二维字符数组及其表示的实际数字。如果愿意,可以使用该数组 我们期望的是:如果我们使用字符串“b.aab”调用“decrypt()”方法,我们期望您返回1.001的双精度值。如果我们使用字符串“ab.a”调用“decrypt()”方法,我们希望您返回1.0的双精度值 import java.util.Scanner; i
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.lang.Double;
public class Decrypt {
private static String conversionTable[][] = {
{"a", "0"},
{"b", "1"},
{"c", "2"},
{"d", "3"},
{"e", "4"},
{"f", "5"},
{"g", "6"},
{"h", "7"},
{"i", "8"},
{"j", "9"},
};
public static double decrypt(String encryptedNumber) {
///{
//write your code here
//start
//end
///}
}
public static void main(String arg[]){
Scanner scanner =new Scanner(System.in);
System.out.println("Enter the string to decrypt:");
String input=scanner.next();
System.out.println("Number after decryption is:"+decrypt(input));
}
}
我尝试了几种变体,但我不明白如何将字符串与字符类型进行比较。我不知道这是否可能,或者这是否是正确的方法。我尝试使用toChar方法拆分输入字符串以转换为char,但问题是如何将char与2d数组进行比较?而且,即使使用嵌套for循环,也无法获得正确的解决方案。我在这里完全迷路了,因此提出了这个问题
我还尝试了以下代码:
char[] splitNumber=encryptedNumber.toCharArray();
for (int i=0;i<splitNumber.length;i++)
{
if(splitNumber[i]=conversionTable.charAt(i))
{
String str=str+splitNumber[i];
}
}
char[]splitNumber=encryptedNumber.toCharray();
对于(int i=0;i好的,既然你已经解释了你的问题以及你的困境所在,我就更有能力帮助你了
您要做的是将字符
与数组
进行比较。您不能这样做。您需要为每个字符循环数组,如下所示:
char[] splitNumber = encryptedNumber.toCharArray();
for (int i=0; i < encryptedNumber.length(); i++) {
char c = encryptedNumber.charAt(i);
for (int j=0; j < conversionTable.length; j++) {
if (c == conversionTable[j][0].charAt(0)) {
// do whatever you want here
}
}
}
char[]splitNumber=encryptedNumber.toCharray();
对于(int i=0;i
内部循环将迭代数组中的行,对于每一行j,将检索其第一列(索引0处)中的值。我们需要编写代码??或者您已经尝试了什么??欢迎使用StackOverflow。此站点不是“复制并粘贴我的家庭作业问题,请有人帮我解决”。你需要付出一些努力,并解释你的困境、你迄今为止所做的努力、什么阻碍了你,等等。否则,人们很可能不会试图帮助你。使用Map
而不是二维数组,否则你需要通过循环来获得匹配的密钥。@Prashant我尝试了很多种类,但我无法理解如何将字符串与字符类型进行比较。我不知道这是否可行,也不知道这是否是正确的方法。我尝试使用toChar方法拆分输入字符串以转换为字符,但问题是如何将字符与2d数组进行比较?此外,即使我使用嵌套for循环,我也无法获得正确的解决方案。我是co我在这里完全迷失了方向,因此提出了这个问题。@OriLentz-请参考上面的评论,在将问题发布到这里之前,我尝试了一些方法,但没有成功。感谢它对我起到了作用。我终于完成了我的程序。我想对你的答案进行投票,但因为你们都对我的问题进行了投票,所以我没有15分需要进行投票:(没关系,我很高兴我能帮上忙。因为你会问更多的问题,你可能会掌握窍门。你现在更了解如何问关于StackOverflow的问题。一旦你解释了你的问题是什么,特别是,你会得到更多的答案和更多的赞成票,而不是反对票。
char[] splitNumber = encryptedNumber.toCharArray();
for (int i=0; i < encryptedNumber.length(); i++) {
char c = encryptedNumber.charAt(i);
for (int j=0; j < conversionTable.length; j++) {
if (c == conversionTable[j][0].charAt(0)) {
// do whatever you want here
}
}
}