更新的代码:
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
方法,但我无法弄清楚是什么问题。如果除此之外的代码还有其他问题,请告诉我。请帮忙。
编辑:问题似乎是用余数法,请帮忙
答案 0 :(得分:6)
使用string.equals(n)
方法测试string
是n
答案 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
}