В приведенной ниже программе содержится пустой метод под названием «decrypt()», который принимает аргумент String. Этот метод будет вызываться со строками, которые представляют зашифрованные числа, вам необходимо реализовать логику, которая преобразует их в двойное значение. Для вашего удобства мы предоставили двухмерный массив символов и фактическое число, которое они представляют. Вы можете использовать этот массив, если хотите.Программа «замена и преобразование строк» Java
Что мы ожидаем: если мы назовем метод 'decrypt()' строкой "b.aab", мы ожидаем, что вы вернете двойное значение для 1.001. Если мы называем метод с String «ab.a» в «) (Расшифровать», мы ожидаем, что вы вернуть двойное значение 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));
}
}
Я попробовал несколько вариантов, но я не могу понять, как могу ли я сравнить строку с типом char. Я не знаю, даже если это возможно, или это правильный способ сделать это. Я попытался расщепить входную строку для преобразования в char с помощью метода toChar, но тогда проблема заключается в том, как я могу сравнить char с массивом 2d? Кроме того, даже если я использую вложенные петли, я не смогу получить правильное решение. Поэтому я полностью потерял здесь эти вопросы.
Я попытался следующий код, а также:
char[] splitNumber=encryptedNumber.toCharArray();
for (int i=0;i<splitNumber.length;i++)
{
if(splitNumber[i]=conversionTable.charAt(i))
{
String str=str+splitNumber[i];
}
}
Но conversionTable.charAt (я) не работает
Далее следует решение:
public static double decrypt(String encryptedNumber) {
///{
//write your code here
//start
//char[] splitNumber=encryptedNumber.toCharArray();
String str="";
char compare='\0';
for (int i=0;i<encryptedNumber.length();i++)
{
compare=encryptedNumber.charAt(i);
if (compare=='.')
{
str=str+".";
}
for(int j=0;j<conversionTable.length;j++)
{
if(compare==conversionTable[j][0].charAt(0))
{
str=str+conversionTable[j][1];
}
}
}
System.out.println(str);
double dValue=Double.parseDouble(str);
return dValue;
нам нужно написать код ?? или вы что-то пробовали? – Prashant
Добро пожаловать в StackOverflow. Этот сайт не «копирует и вставляет мой вопрос о домашнем задании здесь, кто-то, пожалуйста, решите его для меня». Вам нужно показать некоторые усилия и объяснить, где вы застряли, что вы пробовали до сих пор, что вас озадачивает, и так далее. В противном случае люди вряд ли захотят помочь вам. –
Используйте «Карта» вместо 2-мерного массива, иначе вам нужно пройти, чтобы получить соответствующий ключ. – Masudul