Member 13128066 Ответов: 2

Java удаление одного символа из строки


Я много раз пробовал эту функцию, чтобы удалить один символ из строки, но она застревает ... может ли кто-нибудь помочь

Что я уже пробовал:

public String deleteChar (String s1, char c1)
{
    int i,j;
    char s2[]=s1.toCharArray();
    for(i=0;i<s2.length;i++)
    {
        if(s2[i]==c1)
        {
            j=i;

            while(j<s2.length-1)
            {
                s2[j]=s2[j+1] ;
            }
        s2[j+1]=' ' ;
        }
    }
    return String.valueOf(s2);
}


и это основной метод

public static void main(String args[])     {       
    System.out.println("Enter the input String:");         
    Scanner scan = new Scanner(System.in);         
    Str str2 = new Str(scan.nextLine());         
    System.out.println("Enter the character to be deleted :");         
    char c1 = scan.next().charAt(0) ;         
    str2.input = str2.deleteChar(str2.input, c1);         
    System.out.println("The output String is :" + str2.input);
}

2 Ответов

Рейтинг:
2

Richard MacCutchan

Он вообще компилируется? В линии

Str str2 = new Str(scan.nextLine());
Str не является допустимым типом.

Кроме того, в вашем while блок, в котором вы перемещаете текст, вы забыли увеличить значение вашей индексной переменной j.


Рейтинг:
0

Patrice T

Цитата:
он застревает

Определите вид "застрявшего".
Предполагая, что "застрял" означает, что вы не получаете ожидаемого результата, лучше всего запустить код в отладчике и посмотреть, что он делает.

str2.input = str2.deleteChar(str2.input, c1);

Насколько я понимаю, "deleteChar" - это не строковый метод.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.