Archief - JAVA waarde string veranderen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Capraza

Legacy Member
hey 9lives,

ik vraag me af hoe je een waarde in een string kan vervangen op een plaats die wordt meegegeven?
De replace methode is geen optie omdat de in te vullen waarde niet overeen kom met een waarde in de string.

ultddave

Legacy Member
Met "plaats die wordt meegegeven" bedoel je een index vermoed ik?

Input:
String: ABCDEFGH
Karakter: X
Index: 2

En je wilt dus daar ABXDEFGH van maken?

Code:
String test = "ABCDEFGH";
char replacement = 'X';
int position = 2;

String final = test.substring(0, position) + replacement + test.substring(position + 1);

Dit is dan wel simplistisch voorgesteld want je moet ook kijken of position + 1 niet buiten de bounds valt etc :P.

Mvg,
Dave

Jerre Muesli

Legacy Member
Zeer vreemde probleemstelling.
Wil je het karakter op plaats X vervangen met een andere dan?

Capraza

Legacy Member
De code werkt volledig! heel erg bedankt voor je snelle reactie Dave :p

blackrabbit

Legacy Member
Merk wel op dat dat karakter niet 'vervangen wordt in de String', maar dat er verschillende (sub-)Strings worden aangemaakt en vervolgens aan elkaar worden 'geplakt' in uw eind-string.

Afhankelijk van wat je aan het doen bent bestaan er dus misschien betere oplossingen.

VinceVe

Legacy Member
Nog andere oplossing:

Code:
StringBuilder mijnVariabele = new StringBuilder("ABCDEFGH");
mijnVariabele.setCharAt(2, 'X');

De StringBuilder klasse is mutable, en als je meerdere bewerkingen wilt doen is deze aangeraden.

blackrabbit zei:
Merk wel op dat dat karakter niet 'vervangen wordt in de String', maar dat er verschillende (sub-)Strings worden aangemaakt en vervolgens aan elkaar worden 'geplakt' in uw eind-string.

Afhankelijk van wat je aan het doen bent bestaan er dus misschien betere oplossingen.

Strings zijn immutable dus je zal altijd meerdere strings tot een nieuwe moeten maken. :)

blackrabbit

Legacy Member
Daarom dat ik dus zeg:
Afhankelijk van wat je aan het doen bent bestaan er dus misschien betere oplossingen.

En daarmee bedoel ik: afstappen van String & met andere dingen spelen.

Raanº³

Legacy Member
Nog een iets andere methode is gewoon de char indexen aanpassen ;)

je weet (of niet :unsure: ) dat een string een sequentie (array) van chars zijn.

Je string is een charArray, die zet je over naar een nieuwe array en voeg je je tekens in op een welbepaalde positie-index en ga je daarna verder met de rest van je array te kopieren. ;)
Je weet dat je op het einde van je array zit, als je de '\0' waarde tegenkomt.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan