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

如何检查字符串中的第一个字符是否重复?我在任何地方都找不到答案!


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,这对我来说都是全新的!


互换的青春
浏览 224回答 3
3回答

智慧大石

我相信你想要这个charAt()方法:char HamBurger(String s){&nbsp; &nbsp; for(int i=1;i<s.length();i++){&nbsp; &nbsp; &nbsp; &nbsp; if(s.charAt(i)==s.charAt(0)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return s.charAt(0);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return '_';}该[]语法使用Array的。您还可以使用该lastIndexOf方法检查是否还有其他char匹配第一个字母的方法:public static char HamBurger(String s){&nbsp; &nbsp; return s.lastIndexOf(s.charAt(0)) == 0 ? '_' : s.charAt(0);}

慕仙森

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

30秒到达战场

检查您的错误,您传递了您的变量sa,String但是您使用与 相同的变量(即s)访问了它的字符array,从而给了您错误。如果我正确理解您的问题,您想检查字符串的第一个字母是否在同一字符串中的其他任何地方再次出现,如果出现则返回该字符。所以这是我的解决方案:char HamBurger(String s){&nbsp; &nbsp; for(int i = 1; i < s.length(); i++){&nbsp; &nbsp; &nbsp; &nbsp; if(s.charAt(0) == s.charAt(i)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return s.charAt(0);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return '_';}或者,如果您想忽略大小写,则可以将if条件更改为if(s.toLowerCase().charAt(0) == s.toLowerCase().charAt(i)){&nbsp; &nbsp;//code}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java