Hoe kan ik een substring van een gegeven String verwijderen?

Is er een gemakkelijke manier om een substring van een gegeven Stringin Java te verwijderen?

Voorbeeld: "Hello World!", verwijderen van "o""Hell Wrld!"


Antwoord 1, autoriteit 100%

Je zou gemakkelijk String.replace():

String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");

Antwoord 2, autoriteit 2%

U kunt StringBuffer gebruiken

StringBuffer text = new StringBuffer("Hello World");
text.replace( StartIndex ,EndIndex ,String);

Antwoord 3, autoriteit 2%

replace('regex', 'replacement');
replaceAll('regex', 'replacement');

In jouw voorbeeld,

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

Antwoord 4, autoriteit 2%

Bekijk Apache StringUtils:

  • static String replace(String text, String searchString, String replacement)Vervangt alle voorkomens van een String binnen een andere
    Tekenreeks.
  • static String replace(String text, String searchString, String replacement, int max)Vervangt een String door een andere String binnen een
    grotere tekenreeks, voor de eerste maximale waarden van de zoekreeks.
  • static String replaceChars(String str, char searchChar, char replaceChar)Vervangt alle voorkomens van een teken in een String door
    een andere.
  • static String replaceChars(String str, String searchChars, String replaceChars)Vervangt meerdere karakters in een String in één keer.
  • static String replaceEach(String text, String[] searchList, String[] replacementList)Vervangt alle voorkomens van Strings binnen
    een andere String.
  • static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)Vervangt alle exemplaren van
    Tekenreeksen binnen een andere tekenreeks.
  • static String replaceOnce(String text, String searchString, String replacement)Vervangt een String door een andere String binnen een
    grotere tekenreeks, eenmaal.
  • static String replacePattern(String source, String regex, String replacement)Vervangt elke substring van de bronstring die
    matcht de gegeven reguliere expressie met de gegeven vervanging met behulp van
    de optie Pattern.DOTALL.

Antwoord 5, autoriteit 2%

Dit werkt goed voor mij.

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

of je kunt

. gebruiken

String no_o = hi.replace("o", "");

Antwoord 6

Je zou moeten kijken naar StringBuilder/StringBufferwaarmee je char(s) kunt verwijderen, invoegen en vervangen op gespecificeerde offset.


Antwoord 7

Als u de begin- en eindindex kent, kunt u deze gebruiken

string = string.substring(0, start_index) + string.substring(end_index, string.length());

Antwoord 8

U kunt ook guave’sCharMatcher.removeFromfunctie.

Voorbeeld:

String s = CharMatcher.is('a').removeFrom("bazaar");

Antwoord 9

replaceAll(String regex, String replacement)

Bovenstaande methode helpt om het antwoord te krijgen.

String check = "Hello World";
check = check.replaceAll("o","");

Antwoord 10

Je kunt Substring ook gebruiken om te vervangen door een bestaande string:

var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);

Antwoord 11

Hier is de implementatie om alle substrings van de gegeven string te verwijderen

public static String deleteAll(String str, String pattern)
{
    for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
        str = deleteSubstring(str, pattern, index);
    return str;
}
public static String deleteSubstring(String str, String pattern, int index)
{
    int start_index = index;
    int end_index = start_index + pattern.length() - 1;
    int dest_index = 0;
    char[] result = new char[str.length()];
    for(int i = 0; i< str.length() - 1; i++)
        if(i < start_index || i > end_index)
            result[dest_index++] = str.charAt(i);
    return new String(result, 0, dest_index + 1);
}

De implementatie van de methode van Issubstring () is hier

Other episodes