java中的字符操作

java中的字符操作,java,string,character,operation,Java,String,Character,Operation,我有这个方法: public static String appliquerCoup( String combinaison, String coup ){ String res = ""; for(int i = 0; i < 3; i++){ res = res + (combinaison.charAt(i) - coup.charAt(i)); } return res; } 我有: 4-14 逻辑上,它给了我一个-1的2-1=-

我有这个方法:

public static String appliquerCoup( String combinaison, String coup ){
    String res = "";
    for(int i = 0; i < 3; i++){
        res = res + (combinaison.charAt(i) - coup.charAt(i));
    }
    return res;
}
我有:

4-14
逻辑上,它给了我一个
-1
2-1=-1
如果操作低于0,我希望它将我设置为0

所以我做了这些改变:

public static String appliquerCoup( String combinaison, String coup ){
    String res = "";
    for(int i = 0; i < 3; i++){
        char cFinal = combinaison.charAt(i) - coup.charAt(i);
        if(cFinal < '0')
        cFinal = 0;
        res = res + cFinal;
    }
    return res;
}
你能帮我找到解决办法吗?我已经试了很久了


非常感谢

从一个字符减去另一个字符的结果是一个整数。它告诉你他们之间的距离

假设您正在计算
'b'-'a'
。它们之间的区别是数字
1
,而不是字符
'1'

您可以将
cFinal
更改为
int
,它应该可以工作,因为在字符串中附加整数是合法的:

int cFinal = combinaison.charAt(i) - coup.charAt(i);
if (cFinal < 0) // NB: compare with 0, not '0'
    cFinal = 0;
res = res + cFinal;

尝试将字符强制转换为整数。执行字符减号操作没有多大意义。我也不知道你想做什么。。。如果你能详细解释一下。解释:我想做的是:例如:我想在414上减去020。。。预期结果为404。你会明白你用第一个数字减去第一个,用第二个数字减去第二个,用第三个数字减去第三个。。。如果减法为负数,则必须返回0。清楚吗?你对你在那里的投入很有信心;你真的希望输入字符串中只有数字吗?@khelwood找到了解决方案,谢谢大家…如果我把cffinal改成int,结果会给我一个1000。。。我不知道why@biiwop您是否将
if(cFinal<0')
更改为
if(cFinal<0)
possible loss of precision
found :int; required: char
int cFinal = combinaison.charAt(i) - coup.charAt(i);
if (cFinal < 0) // NB: compare with 0, not '0'
    cFinal = 0;
res = res + cFinal;
res += Math.max(0, combinaison.charAt(i) - coup.charAt(i));