Вычитание внутренних строк внутри внешней строки в Java - PullRequest
1 голос
/ 10 марта 2011

Мне интересно, есть ли способ вычесть строки, содержащиеся в другой строке в Java, на основе выбора пользователя.

Это мой код:

removeIng = pH1 + pH2 + pH3;  
System.out.print("Enter number corresponding to element you want to remove");  
System.out.printf("%s",removeIng);  
remove = in.nextInt();  
switch(remove)  
{  
case 1:  
    removeIng = pH2 + pH3;  
case 2:  
    removeIng = pH1 + pH3;  
case 3:  
    removeIng = pH1 + pH2;  
}  

Мне нужно, чтобы код был динамическим, чтобы пользователь мог удалить все элементы, если захочет.У меня уже есть внешний цикл, чтобы учесть эту возможность.Но я в растерянности относительно того, как «removeIng» вычитает выбранный пользователем элемент.Я могу понять другую часть.Любая помощь будет принята с благодарностью.Я нашел способы вычесть строки, которые объявлены как "бла-бла", но ничего подобного.Надеюсь, это имеет смысл.

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Попробуйте String.replace(CharSequence target, CharSequence replacement) ( Javadoc ).Существует также версия этого метода , которая использует регулярные выражения, если вам нужен более мощный синтаксис замены.

0 голосов
/ 10 марта 2011

Исходя из вашего примера кода, может быть проще отслеживать, какие биты строки не нужны пользователю, и генерировать removeIng на основе этого. Вот какой-то псевдокод. Я пожертвовал оптимизацией ради ясности:

String[] components;
// what used to be called pH1 is accessed by components[0];
boolean[] deletedPieces;
// initially set to all false
// contains true for segments that the user wants to delete, false otherwise

your outer loop here {
    // ask the user which piece to delete here
    remove = in.nextInt() - 1; // - 1 to account for array indices starting at 0

    deletedPieces[remove] = true;

    StringBuilder sb = new StringBuilder();

    for(int i = 0; i < total number of possible pieces; i++) {
        if(deletedPieces[i])
            // user wanted this piece deleted; do nothing
        else
            sb.append(components[i]);
    }

    removeIng = sb.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...