Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序MR";“替换和转换字符串”;JAVA_Java - Fatal编程技术网

程序MR";“替换和转换字符串”;JAVA

程序MR";“替换和转换字符串”;JAVA,java,Java,下面的程序包含一个名为“decrypt()”的空方法,该方法接受一个字符串参数。此方法将使用表示加密数字的字符串调用,您需要实现将其转换为双精度值的逻辑。为方便起见,我们提供了一个二维字符数组及其表示的实际数字。如果愿意,可以使用该数组 我们期望的是:如果我们使用字符串“b.aab”调用“decrypt()”方法,我们期望您返回1.001的双精度值。如果我们使用字符串“ab.a”调用“decrypt()”方法,我们希望您返回1.0的双精度值 import java.util.Scanner; i

下面的程序包含一个名为“decrypt()”的空方法,该方法接受一个字符串参数。此方法将使用表示加密数字的字符串调用,您需要实现将其转换为双精度值的逻辑。为方便起见,我们提供了一个二维字符数组及其表示的实际数字。如果愿意,可以使用该数组

我们期望的是:如果我们使用字符串“b.aab”调用“decrypt()”方法,我们期望您返回1.001的双精度值。如果我们使用字符串“ab.a”调用“decrypt()”方法,我们希望您返回1.0的双精度值

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
        }
    }
}