13. juni 2006 - 08:52Der er
33 kommentarer og 1 løsning
replaceAll metoden
Hej Eksperter,
Jeg har en linie i en fil. Udover det har jeg 2 Vectors hvor den ene indeholder tegn og den anden indeholder hvad det pågældende tegn skal ændres til. Så langt så godt. Jeg troede egenligt at jeg kunne slippe afsted med det her, men jeg kan godt se at den ikke går. kon kommer til at indeholde strengen hvor kun det sidste tegn i Vectoren er ændret. Spørgsmålet er hvordan jeg får ændret alle tegn.
for(int i=0;i<tegn.size();i++){ kon = line.replaceAll((String)tegn.elementAt(i), (String)kode.elementAt(i)); }
Jo da. Jeg har mine 2 Vectors. De er lavet sådan at tegn og kode passer sammen parvis. Det skulle gerne være sådan at jeg kan have en linie hvis tegn bliver ændret til den kode som nu er blevet bestemt. Spørgsmålet er om jeg overhovedet kan bruge replaceAll.
Okay. Jeg har prøvet at skrive indholdet af Vectorene ud, bare for at være sikker på de indeholder det som jeg forventer. Det skulle de gøre. Jeg har med vilje lavet kodefilen sådan at den i teorien ikke skulle lave om på noget (a=a, b=b o.s.v.) Jeg får dog ikke det forventede resultat. Jeg har en fil med en linie (Jeg gik en tur) Det bliver til nullABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Filens navn er: hohoho.txt Tegn: A Kode: A Tegn: B Kode: B Tegn: C Kode: C Tegn: D Kode: D Tegn: E Kode: E Tegn: F Kode: F Tegn: G Kode: G Tegn: H Kode: H Tegn: I Kode: I Tegn: J Kode: J Tegn: K Kode: K Tegn: L Kode: L Tegn: M Kode: M Tegn: N Kode: N Tegn: O Kode: O Tegn: P Kode: P Tegn: Q Kode: Q Tegn: R Kode: R Tegn: S Kode: S Tegn: T Kode: T Tegn: U Kode: U Tegn: V Kode: V Tegn: W Kode: W Tegn: X Kode: X Tegn: Y Kode: Y Tegn: Z Kode: Z Tegn: a Kode: a Tegn: b Kode: b Tegn: c Kode: c Tegn: d Kode: d Tegn: e Kode: e Tegn: f Kode: f Tegn: g Kode: g Tegn: h Kode: h Tegn: i Kode: i Tegn: j Kode: j Tegn: k Kode: k Tegn: l Kode: l Tegn: m Kode: m Tegn: n Kode: n Tegn: o Kode: o Tegn: p Kode: p Tegn: q Kode: q Tegn: r Kode: r Tegn: s Kode: s Tegn: t Kode: t Tegn: u Kode: u Tegn: v Kode: v Tegn: w Kode: w Tegn: x Kode: x Tegn: y Kode: y Tegn: z Kode: z kon er: nullABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Jeg skal lige høre hvorfor det er du smider 2 vectors med ned i metoden? Er du ikke kun interesseret i at få returneret en String der indeholder den nye tekst?
public Konverterfil(File f, Vector tegn, Vector kode) { try { FileReader file = new FileReader("C:/crypt/" + f.getName()); System.out.println("Filens navn er: "+f.getName()); BufferedReader buff = new BufferedReader(file);
String line; String kon = ""; while ((line = buff.readLine()) != null) { char[] chars = line.toCharArray(); for (int i = 0; i < chars.length; i++) { String value = new String(new char[]{chars[i]}); int index = tegn.indexOf (value); if (index >= 0) kon += kode.elementAt (i); } } buff.close();
public class Konverterfil { public static void main (String[] args) { Vector tegn = new Vector(); Vector kode = new Vector(); tegn.add ("a"); tegn.add ("b"); tegn.add ("c"); tegn.add ("d");
public Konverterfil(File f, Vector tegn, Vector kode) { try { FileReader file = new FileReader(f.getAbsolutePath()); System.out.println("Filens navn er: "+f.getName()); BufferedReader buff = new BufferedReader(file);
String line; String kon = ""; while ((line = buff.readLine()) != null) { char[] chars = line.toCharArray(); for (int i = 0; i < chars.length; i++) { String value = new String(new char[]{chars[i]}); int index = tegn.indexOf (value); if (index >= 0) kon += kode.elementAt (index); else kon += chars[i]; } } buff.close();
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.