如何检查字符串中的第一个字符是否重复?我在任何地方都找不到答案!
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,对我来说这都是全新的!
答案 0 :(得分:2)
我相信您想要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);
}
答案 1 :(得分:1)
如果要采用迭代方法,则应在要迭代的字符串上使用方法charAt(i)
。该字符串不是Java中char的原始数组。
答案 2 :(得分:1)
检查您的错误,您传递了变量s
,它是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
}