0

J Creator LEで作ってみたコードです。私はまだこれで初心者です、私はあなたが私を助けてくれることを願っています.

public class TelNumHelper{
public static void main(String[] Args){
    String input = "1-800-FLO-WERS";
    String output = " ";
    int Key2,Key3,Key4,Key5,Key6,Key7,Key8,Key9,Key0;
    Key2 = 2;
    Key3 = 3;
    Key4 = 4;
    Key5 = 5;
    Key6 = 6;
    Key7 = 7;
    Key8 = 8;
    Key9 = 9;
    Key0 = 0;

    for(int i = 0;i<input.length();i++){
        if(input.charAt(i)=='-'){
            output = output + input.charAt(i);
        }else{
            output = output + valid(input.charAt(i));
        }

    }

public static char valid(char input){

            if(input == A||input == B||input == C||input == 2){
                System.out.println(Key2);
            }else if(input == D||input == E||input == F||input == 3){
                System.out.println(Key3);
            }else if(input == G||input == H||input == I||input == 4){
                System.out.println(Key4);
            }else if(input == J||input == K||input == L||input == 5){
                System.out.println(Key5);
            }else if(input == M||input == N||input == O||input == 6){
                System.out.println(Key6);
            }else if(input == P||input == Q||input == R||input == S||input == 7){
                System.out.println(Key7);
            }else if(input == T||input == U||input == V||input == 8){
                System.out.println(Key8);
            }else if(input == W||input == X||input == Y||input == Z||input == 9){
                    System.out.println(Key9);
            }else if(input == 0){
                System.out.println(Key0);

            }else{
                System.out.println("Error");
            }
        }
    }

}

メソッドを機能させるにはどうすればよいですか?いろいろな方法を試してみましたが、それでもうまくいきません

このコードは、文字ではなく数字を出力し、すべての文字を数字に変更する必要があります。文字を数字に変換するための基礎として、携帯電話のキーパッドを使用しました。

4

2 に答える 2

1

メソッドvalidは、文字を返す代わりに出力します。このメソッドが何らかの検証を行うことを示唆する名前は別として、ifケースでは を使用する必要がありますreturn。キーを整数として定義しましたが、実際には適切な数値で文字を返したいと考えています。また、A、B などと呼ばれる静的変数ではなく、文字と比較する必要があります。あなたは次のようになるはずです:

char Key1 = '1';
char Key2 = '2';
...

public static void Main(string[] args) {
    string input = "0-800-FLO-WERS";
    string output = "";

    for(....)...

}

public static char valid(char input)
{
    if ((input == 'A') || (input == 'B') ... )
        return Key1;
    else if ....
}
于 2013-03-24T09:59:47.457 に答える
0

途中でコンパイルしてテストすれば、後で修正する必要のあるコードをそれほど多く書くことはありません。多くの場合、翻訳では、何らかのマッピングを行う方が簡単です。ここにあなたがそれを行うことができる1つの方法があります

public class Main {
    static final String codes = "00000" +
            "11111" +
            "22ABC" +
            "33DEF" +
            "44GHI" +
            "55JKL" +
            "66MNO" +
            "7PQRS" +
            "88TUV" +
            "9WXYZ";

    public static void main(String... ignore) {
        String input = "1-800-FLO-WERS";
        String output = convertTextToDigits(input);
        System.out.println(input + " can be dialed as " + output);
    }

    private static String convertTextToDigits(String input) {
        StringBuilder sb = new StringBuilder(input.length());
        for(char ch: input.toCharArray()) {
            int pos = codes.indexOf(ch);
            if (pos >=0)
                sb.append(pos/5);
        }
        return sb.toString();
    }
}

版画

1-800-FLO-WERS can be dialed as 18003569377
于 2013-03-24T10:16:49.070 に答える