Java 从文本到数字
在您的手机键盘和旧键盘上,字母表映射到如下数字:ABC(2)、DEF(3)、GHI(4)、JKL(5)、MNO(6)、PQRS(7)、TUV(8)、WXYZ(9)。 编写一个程序,提示用户输入字符串(不区分大小写),并将其转换为键盘数字序列Java 从文本到数字,java,Java,在您的手机键盘和旧键盘上,字母表映射到如下数字:ABC(2)、DEF(3)、GHI(4)、JKL(5)、MNO(6)、PQRS(7)、TUV(8)、WXYZ(9)。 编写一个程序,提示用户输入字符串(不区分大小写),并将其转换为键盘数字序列 public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.next().toLowerCase();
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String str = scan.next().toLowerCase();
for(int i = 0; i <= (str.length()-1); i++)
{
if(str.charAt(i) == 'A')
System.out.print("2");
else if(str.charAt(i) == 'B')
System.out.print("22");
else if(str.charAt(i) == 'C')
System.out.print("222");
else if(str.charAt(i) == 'D')
System.out.print("3");
else if(str.charAt(i) == 'E')
System.out.print("33");
else if(str.charAt(i) == 'F')
System.out.print("333");
else if(str.charAt(i) == 'G')
System.out.print("4");
else if(str.charAt(i) == 'H')
System.out.print("44");
else if(str.charAt(i) == 'I')
System.out.print("444");
else if(str.charAt(i) == 'J')
System.out.print("5");
else if(str.charAt(i) == 'K')
System.out.print("55");
else if(str.charAt(i) == 'L')
System.out.print("555");
else if(str.charAt(i) == 'M')
System.out.print("6");
else if(str.charAt(i) == 'N')
System.out.print("66");
else if(str.charAt(i) == 'O')
System.out.print("666");
else if(str.charAt(i) == 'P')
System.out.print("7");
else if(str.charAt(i) == 'Q')
System.out.print("77");
else if(str.charAt(i) == 'R')
System.out.print("777");
else if(str.charAt(i) == 'S')
System.out.print("7777");
else if(str.charAt(i) == 'T')
System.out.print("8");
else if(str.charAt(i) == 'U')
System.out.print("88");
else if(str.charAt(i) == 'V')
System.out.print("888");
else if(str.charAt(i) == 'W')
System.out.print("9");
else if(str.charAt(i) == 'X')
System.out.print("99");
else if(str.charAt(i) == 'Y')
System.out.print("999");
else if(str.charAt(i) == 'Z')
System.out.print("9999");
}
}
publicstaticvoidmain(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
String str=scan.next().toLowerCase();
对于(inti=0;i,这是你的罪魁祸首:
String str = scan.next().toLowerCase();
将其更改为:
String str = scan.next().toUpperCase();
这是你的罪魁祸首:
String str = scan.next().toLowerCase();
将其更改为:
String str = scan.next().toUpperCase();
您需要修复以下代码:
String str = scan.next().toLowerCase();
致:
如果你不想用很多的If-then,你可以用这个:
private int takeResult(char c){
int toInt = (int) c;
if(c < 'A' && c > 'Z') throw new IllegalArgumentException();
if (c == 'S') return 7777;
if (c == 'Z') return 9999;
int magic = toInt % 3;
if (c > 'S') return (((toInt / 3) - 20) * (45 * magic * magic - 35 * magic + 1));
return ((toInt / 3) - (((-1) * magic * magic + magic + 40) / 2)) * ((-105) * magic * magic + 205 * magic + 11);
}
private int takeResult(字符c){
int-toInt=(int)c;
如果(c<'A'和&c>'Z')抛出新的IllegalArgumentException();
如果(c='S')返回7777;
如果(c='Z')返回9999;
int magic=toInt%3;
如果(c>'S')返回(((toInt/3)-20)*(45*magic*magic-35*magic+1));
返回((toInt/3)-((-1)*魔法*魔法+魔法+40)/2)*(-105)*魔法*魔法+205*魔法+11);
}
虽然它更复杂但更“有趣”:.GLHF
您需要修复以下代码:
String str = scan.next().toLowerCase();
致:
如果你不想用很多的If-then,你可以用这个:
private int takeResult(char c){
int toInt = (int) c;
if(c < 'A' && c > 'Z') throw new IllegalArgumentException();
if (c == 'S') return 7777;
if (c == 'Z') return 9999;
int magic = toInt % 3;
if (c > 'S') return (((toInt / 3) - 20) * (45 * magic * magic - 35 * magic + 1));
return ((toInt / 3) - (((-1) * magic * magic + magic + 40) / 2)) * ((-105) * magic * magic + 205 * magic + 11);
}
private int takeResult(字符c){
int-toInt=(int)c;
如果(c<'A'和&c>'Z')抛出新的IllegalArgumentException();
如果(c='S')返回7777;
如果(c='Z')返回9999;
int magic=toInt%3;
如果(c>'S')返回(((toInt/3)-20)*(45*magic*magic-35*magic+1));
返回((toInt/3)-((-1)*魔法*魔法+魔法+40)/2)*(-105)*魔法*魔法+205*魔法+11);
}
虽然它更复杂,但更“有趣”:.GLHF!!还有,我在这里使用了嵌套if。有没有办法使这段代码更短?还有,我在这里使用了嵌套if。有没有办法使这段代码更短?我甚至会将其更改为toUpperCase(Locale.ROOT)
以防万一(请参阅)非常感谢!:)但为什么它不适用于小写?因为您的if语句正在检查大写字符。我甚至会将它更改为toUpperCase(Locale.ROOT)
以防万一(请参阅)非常感谢!:)但为什么它不适用于小写?因为您的if语句正在检查大写字符。