方法不起作用?

时间:2012-04-26 06:19:03

标签: java

更新的代码:

import java.util.*;

public class Main {

/**
 * @param args
 */
static int[] C;
static int[] D;
static String P;

public static void main(String[] args) {
    C = new int[10];
    D = new int[10];
    getNumber();
}

private static void getNumber() {
    System.out
            .println("Enter your first number with spaces in between digits.");
    Scanner S = new Scanner(System.in);
    String O = S.nextLine();
    String[] A = new String[10];
    A = O.split(" ");
    for (int X = 0; A.length > X; X++) {
        C[X] = toNumber(A[X]);
    }
    String P = S.nextLine();
    String[] B = new String[10];
    B = P.split(" ");
    for (int Y = 0; B.length > Y; Y++) {
        C[Y] = toNumber(A[Y]);
    }
    System.out.print(C[0]);
    remainders();
}

private static void remainders() {
    for (int A = 0; C.length > A; A++) {
        if (D[1] * C[A] >= 10) {
            Integer B = new Integer(D[1] * C[A]);
            Character E = B.toString().charAt(0);
            P.concat(E.toString());
        }
    }
    for (int A = 0; C.length > A; A++) {
        if (D[0] * C[A] >= 10) {
            Integer B = new Integer(D[1] * C[A]);
            Character E = B.toString().charAt(0);
            P.concat(E.toString());
        }
    }
    System.out.print(P);
}

private static int toNumber(String string) {
    if (string.equals("0")) {
        return 0;
    } else if (string.equals("1")) {
        return 1;
    } else if (string.equals("2")) {
        return 2;
    } else if (string.equals("3")) {
        return 3;
    } else if (string.equals("4")) {
        return 4;
    } else if (string.equals("5")) {
        return 5;
    } else if (string.equals("6")) {
        return 6;
    } else if (string.equals("7")) {
        return 7;
    } else if (string.equals("8")) {
        return 8;
    } else if (string.equals("9")) {
        return 9;
    } else {
        return 0;
    }
}

}

出于某种原因,它打印的最后一件事是null。我很确定问题是toNumber方法,但我无法弄清楚是什么问题。如果除此之外的代码还有其他问题,请告诉我。请帮忙。 编辑:问题似乎是用余数法,请帮忙

2 个答案:

答案 0 :(得分:6)

使用string.equals(n)方法测试stringn

答案 1 :(得分:0)

以这种方式比较字符串常量:"0".equals(string)。字符串文字是实际的String对象,您可以在它们上调用任何String方法。你应该更喜欢在常量上调用方法,因为它保证它们存在,而变量可以是null。 你不需要重新发明轮子。 Java拥有丰富的SDK。 只需使用

int x = Integer.valueOf(a[X]);

如果您只想要数字0-9,那么只需测试

if (0 <= x && x <= 9) {
  //valid continue
} else {
  //invalid state handling
}