我正在尝试创建一个方法,它将采用一个数字(组合),并从中减去一个(妙招),char减去char。如果它小于0,则问题中的字符为0。
例如,如果我有333的组合,并且我添加了142的“妙招”,则结果为201。 基本上,它逐个减去每个字符,并为每个字符返回0。 2个输入的长度必须相等,否则返回空字符串。
我尝试了这个,但如果我输入1个字符,它会给我48个,2个字符4848,依此类推。
解决了,我只是将'0'改为0。
public static String appliquerCoup(String combinaison, String coup) {
String res = "";
if ((combinaison.length() != coup.length()) || (coup.isEmpty())) {
return res;
} else {
for (int i = 0; i < coup.length(); i++) {
int res2 = (combinaison.charAt(i) - coup.charAt(i));
if (res2 < '0') {
res2 = '0';
}
res = res + res2;
}
return res;
}
}
public static void main(String[] params) {
String coup = "3";
String combinaison = "4";
String y = appliquerCoup(combinaison, coup);
System.out.println(y);
}
答案 0 :(得分:0)
您知道正在使用ASCII进行减法。
如果要使用整数减法,请使用
int res2 = Integer.parseInt(Character.toString(combinaison.charAt(i))) - Integer.parseInt(Character.toString(coup.charAt(i)))
答案 1 :(得分:0)
为什么不用数字(int,long等)代替字符串进行减法?如果需要,可以将最终结果转换为String
res = (combinaison - coup).toString();
如果您不想这样做: 我认为你的代码错了,你减去的东西不是你想要的数字,你减去了与那个角色对应的ascii数字。