Hoe vervang ik een substring van een string

Ervan uitgaande dat ik een String stringheb zoals deze:

"abcd=0; efgh=1"

en ik wil “abcd” vervangen door “dddd”. Ik heb geprobeerd zoiets te doen:

string.replaceAll("abcd","dddd");

Het werkt niet. Eventuele suggesties?

BEWERKEN:
Om specifieker te zijn, ik werk in Java en ik probeer het HTML-document te ontleden, in het bijzonder de inhoud tussen <script>-tags. Ik heb al een manier gevonden om deze inhoud in een string te ontleden:

if(tag instanceof ScriptTag){
        if(((ScriptTag) tag).getStringText().contains("DataVideo")){
            String tagText = ((ScriptTag)tag).getStringText();
      }
}

Nu moet ik een manier vinden om de ene substring door een andere te vervangen.


Antwoord 1, autoriteit 100%

U moet de retourwaarde van replaceAll()methode. replaceAll()vervangt de tekens in de huidige tekenreeks niet, maar retourneert een nieuwe tekenreeks met vervanging.

  • String-objecten zijn onveranderlijk, hun waarden kunnen niet worden gewijzigd nadat ze zijn gemaakt.
  • Je mag vervangen() gebruiken in plaats van ReplaceAll() als je geen regex nodig hebt.
   String str = "abcd=0; efgh=1";
    String replacedStr = str.replaceAll("abcd", "dddd");
    System.out.println(str);
    System.out.println(replacedStr);

uitgangen

abcd=0; efgh=1
dddd=0; efgh=1

Antwoord 2, autoriteit 17%

2 dingen waar u op moet letten:

  1. Tekenreeksen in Java zijn onveranderlijk, dus u moet de retourwaarde van de aanroep van de methode daar in een andere tekenreeks opslaan.
  2. Je hebt hier niet echt een regex nodig, alleen een simpele oproep naar String#replace(String)zal het werk doen.

Gebruik dus gewoon deze code:

String replaced = string.replace("abcd", "dddd");

Antwoord 3, autoriteit 16%

U moet de variabele maken waaraan u de nieuwe waarde wilt toewijzen, als volgt:

String str = string.replaceAll("abcd","dddd");

Antwoord 4, autoriteit 11%

Bij regex denk ik dat dit java is, de methode replaceAll()retourneert een nieuwe string met de substrings vervangen, dus probeer dit:

String teste = "abcd=0; efgh=1";
String teste2 = teste.replaceAll("abcd", "dddd");
System.out.println(teste2);

Uitvoer:

dddd=0; efgh=1

Antwoord 5, autoriteit 5%

Merk op dat backslashes (\) en dollartekens ($) in de vervanging
string kan ervoor zorgen dat de resultaten anders zijn dan wanneer het zou zijn
behandeld als een letterlijke vervangende string; zien
Matcher.replaceAll.
Gebruik maken van
Matcher.quoteReplacement(java.lang.String)
om de speciale betekenis van deze tekens te onderdrukken, indien gewenst.

van javadoc.


Antwoord 6

In javascript:

var str = "abcdaaaaaabcdaabbccddabcd";
document.write(str.replace(/(abcd)/g,"----"));
//example output: ----aaaaa----aabbccdd----

In andere talen zou het iets soortgelijks zijn. Vergeet niet om algemene overeenkomsten in te schakelen.


Antwoord 7

Je wijst het waarschijnlijk niet toe nadat je de vervanging hebt gedaan of het verkeerde hebt vervangen.
Probeer :

String haystack = "abcd=0; efgh=1";
String result = haystack.replaceAll("abcd","dddd");

Other episodes