Как вернуть первый символ строки, если она повторяется? - PullRequest
0 голосов
/ 20 сентября 2018

Как я могу проверить, повторяется ли первый символ в строке или нет?Я нигде не могу найти ответ!

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 ]

0 голосов
/ 20 сентября 2018

Если вы используете итеративный подход, вы должны использовать метод charAt(i) для строки, через которую вы проходите.Строка не является примитивным массивом символов в Java.

0 голосов
/ 20 сентября 2018

Проверьте свои ошибки, вы передали свою переменную 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
}
0 голосов
/ 20 сентября 2018

Я полагаю, вам нужен метод 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);
}
...