You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何在字符处理方法中返回char类型的-1?

Java方法中返回char类型的-1解决方案

在Java里,char是无符号的16位整数类型,取值范围是\u0000到\uffff。要返回代表“-1”的char值,你需要把int类型的-1强制转换为char,转换后得到的是Unicode字符\uffff(对应十进制65535),这个值常被用作“无匹配结果”的标记。

修改你的代码如下:

static char nonrepeatingCharacter(String S)
{
    ArrayList<Character> al = new ArrayList<Character>();
    
    for(int i=0; i<S.length(); i++){
        if(!al.contains(S.charAt(i)))
            al.add(S.charAt(i));
        else
            al.remove(Character.valueOf(S.charAt(i)));
    }
    
    if(al.size() == 0){
        // 返回char类型的-1,对应Unicode的\uffff
        return (char) -1;
    }
    
    return al.get(0);
}

补充说明

  • 直接写return -1;会编译报错,因为-1是int类型,无法直接赋值给char类型的返回值,必须通过(char)进行强制类型转换。
  • (char) -1和(char) 0xffff是完全等价的,因为int类型的-1在二进制补码中是全1,转成16位char后就对应\uffff。

内容的提问来源于stack exchange,提问作者Aman Kumar Shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:35:05