为了账号安全,请及时绑定邮箱和手机立即绑定

如果字符串重复,如何返回字符串的第一个字符?

如果字符串重复,如何返回字符串的第一个字符?

互换的青春 2021-09-29 14:58:41
如何检查字符串中的第一个字符是否重复?我在任何地方都找不到答案!char HamBurger(String s){    for(int i=1;i<s.length();i++){        if(s[i]==s[0]){            return s[0];        }    }    return "_";}它给了我这样的错误file.java on line 4: error: array required, but String found        if(s[i]==s[j]){            ^file.java on line 4: error: array required, but String found        if(s[i]==s[j]){                  ^file.java on line 5: error: array required, but String found            return s[j];                    ^抱歉,我正在从 C++ 过渡到 Java,这对我来说都是全新的!
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

我相信你想要这个charAt()方法:


char HamBurger(String s){


    for(int i=1;i<s.length();i++){

        if(s.charAt(i)==s.charAt(0)){

            return s.charAt(0);

        }

    }

    return '_';

}

该[]语法使用Array的。


您还可以使用该lastIndexOf方法检查是否还有其他char匹配第一个字母的方法:


public static char HamBurger(String s){

    return s.lastIndexOf(s.charAt(0)) == 0 ? '_' : s.charAt(0);

}


查看完整回答
反对 回复 2021-09-29
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果您采用迭代方法,则应charAt(i)在要迭代的字符串上使用该方法。该字符串不是 Java 中的原始字符数组。


查看完整回答
反对 回复 2021-09-29
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

检查您的错误,您传递了您的变量sa,String但是您使用与 相同的变量(即s)访问了它的字符array,从而给了您错误。


如果我正确理解您的问题,您想检查字符串的第一个字母是否在同一字符串中的其他任何地方再次出现,如果出现则返回该字符。所以这是我的解决方案:


char HamBurger(String s){


    for(int i = 1; i < s.length(); i++){

        if(s.charAt(0) == s.charAt(i)){

            return s.charAt(0);

        }

    }

    return '_';

}

或者,如果您想忽略大小写,则可以将if条件更改为


if(s.toLowerCase().charAt(0) == s.toLowerCase().charAt(i)){

   //code

}


查看完整回答
反对 回复 2021-09-29
  • 3 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信