Avatar billede dennish Nybegynder
30. november 2003 - 01:44 Der er 7 kommentarer og
2 løsninger

udskifte bestemte tegn i en string

Jeg har f.eks en string bestående af:

"100111548899"

Jeg skal f.eks tage tallet 5 og udskifte det med 3 så strengen efterfølgende ser sådan ud:

"100111348899"

Jeg tror nok jeg kan bruge substring eller replace, men kan ikke lige hitte ud af det. Er der nogen der kan hjælpe ?
Avatar billede jakoba Nybegynder
30. november 2003 - 02:01 #1
Hvad du skal bruge kommer an på hvad du ved om den streng. Hvilke regler du er helt sikker på den streng overholder.
som fx:
  står '5' altid som det 7'ende bogstav i strengen ?
  kan der være flere '5' i strengen, og skal de alle udskiftes ?
  ... (altmulig andet du ved om den streng).
Avatar billede arne_v Ekspert
30. november 2003 - 09:59 #2
string s1 = "100111548899";
string s2 = s1.replace('5', '3');

erstatter alle 5 med 3.
Avatar billede dsj Nybegynder
30. november 2003 - 10:00 #3
I Java 1.4 har du følgende metode:

String.replaceAll(String regex, String replacement)

F.eks.:

String newString = "100111548899".replaceAll("5", "3");
Avatar billede dennish Nybegynder
30. november 2003 - 12:07 #4
Ok jeg har en streng. Og for hver gang jeg har denne streng skal jeg på en bestemt position udskrifte et tal. Dette tal varierer fra gang til gang
Avatar billede dennish Nybegynder
30. november 2003 - 12:11 #5
Min streng ser faktisk sådan ud nu:

00111000110001010001. // den repræsenterer et dna.

Jeg får f.eks tallet 7 hvilke betyder at jeg skal udskifte tallet på position 7 med det modsattet nemlig 1. SÅ kommer strengern til at se sådan ud:

00111010110001010001 // et muteret dna.

Så jeg skal ikke udskifte alle 0'er og 1 'er i min string. Jeg skal kun udsiffte et tal på et bestemt position.
Avatar billede ulrikm Nybegynder
30. november 2003 - 12:27 #6
Du kan bruge en StringBuffer (som konstrueres fra dit String objekt og indekseres fra 0 til length()-1):

StringBuffer buf = new StringBuffer("00111000110001010001");
buf.replace( 6, 7, "1" );
Avatar billede arne_v Ekspert
30. november 2003 - 13:23 #7
StringBuffer var en mulighed.

Du kunne også i.s.f. bruge et char array.

string s = "00111000110001010001";
char[] c = s.toCharArray();
s[6] = '1';

Måske var det nemmere at manipulere den måde.

(String har en cobnstructor fra char[] når du skal tilbage)
Avatar billede dennish Nybegynder
30. november 2003 - 15:08 #8
Det skal vist være c[6] = '1';
En hvad cobnstructor. arne kan du ikke vise hvordan jeg caster fra et CharArray tilbage til en string
Avatar billede arne_v Ekspert
30. november 2003 - 15:11 #9
For mange tommeltotter på tastaturet.

constructor

char[] c;
...
string s = new String(c);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB