有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将大写字母输入转换为特定数字

我对编程非常陌生,所以我希望保持这个简单。编译器接受我的代码,但当我运行程序并键入字母A时,我只会收到大量错误。我之前尝试使用字符串字母而不是int字母,但我只是得到编译器错误,说明我无法将字符串转换为字符或其他东西。我真的很困惑,可以用一个快速的解释和修复,这样我可以得到一个数字回来。这是我的密码:

import java.util.Scanner;
import java.lang.String;

public class PhoneAlgorithm {
    public static void main(String[] args){

        int digit = -1;
        Scanner in;
        in = new Scanner(System.in);

        System.out.print("Enter an uppercase letter to find out the corresponding digit on a telephone: ");

        int letter;
        letter = Integer.parseInt(in.next());

        if (letter == 'A' || letter == 'B' || letter == 'C') {
            digit = 2;  }
        else if (letter == 'D' || letter == 'E' || letter == 'F') {
            digit = 3; }
        else if (letter == 'G' || letter == 'H' || letter == 'I') {
            digit = 4; }
        else if (letter == 'J' || letter == 'K' || letter == 'L') { 
            digit = 5; }
        else if (letter == 'M' || letter == 'N' || letter == 'O') {
            digit = 6; } 
        else if (letter == 'P' || letter == 'Q' || letter == 'R' || letter == 'S') {
            digit = 7; }
        else if (letter == 'T' || letter == 'U' || letter == 'V') {
            digit = 8; }
        else if (letter == 'W' || letter == 'X' || letter == 'Y' || letter == 'Z') {
            digit = 9; }
        else  if (letter >= 'a' && letter >= '3') {
            System.out.print("You did not enter a valid uppercase letter.  Try again!");
        }
        if (digit != -1) {
            System.out.println("The corresponding digit on your telephone is: " + digit);
        }
    }
}

共 (2) 个答案

  1. # 1 楼答案

    使用parseInt(str)时,如果参数str无法转换为整数,则会得到Exception

    必须使用char,因为要将输入与单个字符进行比较:

    char letter;
    letter = in.nextLine().charAt(0);
    
    • str.charAt(index)返回指定索引处的字符值
  2. # 2 楼答案

    我修改了你的代码,我想这就是你要找的

    import java.util.Scanner;
    
    public class Try {
    
    public static void main(String[] args) {
    
        //declarations
        char letter;
        int digit=0;
    
    
        // Asking the user to enterstring
        System.out.println("Enter the string");
        String enterString;
    
    
        //creating a scanner object and reading the string
        Scanner input = new Scanner(System.in);  
        enterString= input.next();
        System.out.println("Entered string is "+enterString);
    
        int temp=0;
    
        for(int i=0;i<enterString.length();i++){
             letter=(char)enterString.codePointAt(i);
    
             if (letter == 'A' || letter == 'B' || letter == 'C') {
                 digit = digit*10+2;  }
             else if (letter == 'D' || letter == 'E' || letter == 'F') {
                 digit = digit*10+3; }
             else if (letter == 'G' || letter == 'H' || letter == 'I') {
                 digit = digit*10+4; }
             else if (letter == 'J' || letter == 'K' || letter == 'L') { 
                 digit = digit*10+5; }
             else if (letter == 'M' || letter == 'N' || letter == 'O') {
                 digit = digit*10+6; } 
             else if (letter == 'P' || letter == 'Q' || letter == 'R' || letter == 'S') {
                 digit = digit*10+7; }
             else if (letter == 'T' || letter == 'U' || letter == 'V') {
                 digit = digit*10+8; }
             else if (letter == 'W' || letter == 'X' || letter == 'Y' || letter == 'Z') {
                 digit = digit*10+9; }
             else  if (letter >= 'a' && letter >= '3') {
                 System.out.print("You did not enter a valid uppercase letter.  Try again!");
             }
             /*if (digit != 0) {
                 System.out.println("The corresponding digit on your telephone is: " + digit);
             }*/         
        }
    
        if (digit != 0) {
            System.out.println("The corresponding digit on your telephone is: " + digit);
        }
    
    }
    
    }