我试图学习Java,但我仍然坚持练习:我必须写一个" decrypt()"方法,它转换像b.aab这样的String并返回double值1.001。
我还给出了二维字符数组及其代表的数字。
private static String conversionTable[][] = {
{"a", "0"},
{"b", "1"},
{"c", "2"},
{"d", "3"},
{"e", "4"},
{"f", "5"},
{"g", "6"},
{"h", "7"},
{"i", "8"},
{"j", "9"},
};
我知道有一种方法可以将char ch转换成具有ascii值的数字,例如ch - ' a' + 1,但我不知道如何在这里应用它。所以我的问题是:如何将字符串转换为相应数字的字符串?从那里我将使用parseDouble();返回String的两倍。谢谢你以前。
答案 0 :(得分:0)
你应该尝试这样
char ch='A';
int value=(int)ch-17;
System.out.println(value);
答案 1 :(得分:0)
import java.util.Scanner;
public class Program10 {
public static void main(String[] args) {
System.out.println("Enter a string to decrypt");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
decrypt(input);
}
public static void decrypt(String input) {
char ch;
String str = "";
int length = input.length();
for(int i = 0; i < length ; i++) {
ch = input.charAt(i);
if(ch != '.') {
int val = (int) ch;
str = str + (val - 97);
} else {
String x = "" + ch;
str = str.concat(x);
}
}
System.out.println(str);
}
}
答案 2 :(得分:-1)
这可以解决使用Java8的问题:
public static void main(String args[]){
String t="abcd";
for(String s:t.split("")){
System.out.println(s.charAt(0)-'a');
}
}
如果全部小写,你可以利用'a' - 'a'= 0这个事实。 使用Java4-7,您必须跳过空字符。