Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 总是返回48的减法数字的方法_Java - Fatal编程技术网

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

Java 总是返回48的减法数字的方法,java,Java,我正在尝试创建一个方法,该方法将获取一个数字(combinaison),并从中逐字符减去一个(coup)。如果小于0,则问题中的字符为0 例如,如果我有一个333的组合,加上一个142的“coup”,结果是201。 基本上,它一个接一个地减去每个字符,每个负字符返回0。 两个输入的长度必须相等,否则返回空字符串 我试过这个,但是如果我输入1个字符,它会给我48,2个字符4848,依此类推 编辑 已解决,我刚将“0”更改为0 public static String appliquerCoup(S

我正在尝试创建一个方法,该方法将获取一个数字(combinaison),并从中逐字符减去一个(coup)。如果小于0,则问题中的字符为0

例如,如果我有一个333的组合,加上一个142的“coup”,结果是201。 基本上,它一个接一个地减去每个字符,每个负字符返回0。 两个输入的长度必须相等,否则返回空字符串

我试过这个,但是如果我输入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);
}
公共静态字符串AppliquerGroup(字符串组合、字符串耦合){
字符串res=“”;
if((combinaison.length()!=coup.length())| |(coup.isEmpty()){
返回res;
}否则{
对于(int i=0;i
您知道您正在使用减法
如果要使用整数减法,请使用

int res2 =  Integer.parseInt(Character.toString(combinaison.charAt(i))) - Integer.parseInt(Character.toString(coup.charAt(i)))

为什么不用数字(int、long等)而不是字符串进行减法呢?如果需要,可以将最终结果转换为字符串

res = (combinaison - coup).toString();
如果您不想这样做:
我认为您的代码是错误的,您要减法的不是您想要的数字,您要减法的是与该字符对应的ascii数字。

您知道您正在使用减法。如果您想使用整数减法,那么使用int res2=integer.parseInt(Character.toString(combinaison.charAt(i))-integer.parseInt(Character.toString(coup.charAt(i)))就像@StackFlowed所说的那样。“0”的ASCII值为48。发布输入和预期输出的示例(带有一些特殊情况)将非常有助于更好地理解您的问题,这将使我们能够为您提供更好的答案。如果我正确理解了你的问题,那么简单的
If(res2<0){res2=0;}
就可以了。另外,您不应该在循环中使用
string=string+newValue
,请使用StringBuilder。谢谢您,我将尝试此方法。您需要[]您的问题并在此处添加此信息。此外,还可以添加有关您要实现的算法的更多信息。正如我前面所说的输入和输出示例(解释为什么应该有这样的输出)将非常有用。在Java中不能减去字符串。我知道这一点,但我是在将其转换为字符串,或最初将其声明为int或long之后说的。