减去总是返回48的数字的方法

时间:2014-11-16 23:16:13

标签: java

我正在尝试创建一个方法,它将采用一个数字(组合),并从中减去一个(妙招),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);
}

2 个答案:

答案 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数字。