2016-08-31 3 views
0

Ich habe eine Datei, die ich in eine Zeichenfolge konvertiert hat es mehrere Zeilen. Ich versuche nur, um die Position eines Verzeichnisses zu ändern, die die LinieJava-Muster-Match aus Textdatei

ist

Dir = C: \\ Users \\ Admin \\ AppData \\ Local \ Temp

Dieser Weg könnte sein, unterschiedlich zwischen Dateien und von unbekannter Länge sein. Es wird immer

Dir = "etwas" \ Temp.

Ich bin neu jede Hilfe wird geschätzt. Ich nehme an, es ist die Flucht von Charakteren..aber ich bin mir nicht sicher, ich dachte über die Verwendung von regulären Ausdrücken, aber ich denke, dass Ill in das gleiche Problem laufen.

Erwartet

Dir = C: \\ Users \\ Admin \\ AppData \\ Lokale \\ Temp

C: \\ Users \\ Admin \\ AppData \\ Lokale \\

Dir = \\\\ LocalPC \\ LocalTemp

Actual

Dir = C: \\ Users \\ Admin \\ AppData \\ Lokale \\ Temp

C: \\ Users \\ Admin \\ AppData \\ Lokale \\

Dir = C: \\ Benutzer \\ Admin \\ AppData \\ Lokale \\ Temp

public class test 
{ 
    public String fileText; 

    public static void main(String[] args) 
    { 
    StartUpFile bob = new StartUpFile(); 

     System.out.println(bob.showFile()); 
     System.out.println(bob.temp()); 

     bob.change(); 
     System.out.println(bob.showFile()); 

    } 
} 

public class StartUpFile 
{ 
    private String fileText; 
    private String newText; 
    /** 
    * Constructor for objects of class StartUpFile 
    */ 
    public StartUpFile() 
    { 
     newText = "\\\\"+"LocalPC"; 
     fileText = "Dir=C:"+"\\\\"+"Users"+"\\\\"+"admin"+"\\\\"+"AppData"+"\\\\"+"Local"+"\\\\"+"Temp"; 
    } 
    /** 
    * I want to ID the text bewtween "Dir=" and "Temp" 
    */ 
    public String temp() 
    { 
     int startTemp = fileText.indexOf("Dir=") + 4; 
     int EndTemp = fileText.indexOf("Temp"); 
     return fileText.substring(startTemp,EndTemp); 
    } 
    /** 
    * show the string 
    */ 
    public String showFile() 
    { 
     return fileText; 
    } 
    /** 
    * swap the temp string for the newText 
    */ 
    public void change() 
    { 
     fileText = fileText.replaceAll(temp(),newText); 
    } 
} 
+0

Ich landete mit etwas wie – Minerbob

Antwort

0

Jemand mit der Verwendung von regulären Ausdrücken zugestimmt hat, also ich saugte sie bis sie Naht wie etwas, das ich sollte gut erhalten.

landete ich mit

bis
String result = fileText.replaceAll("^*(?<==).*$", newText); 

Was ich als Ausgangs auf einer Linie etwas nach = bis zum Ende der Zeile passend etwas lesen, die für meine Zwecke funktioniert. Aber wenn jemand weiß, wie man etwas vor "temp" sagt, denke ich, es wäre sauberer. Vielen Dank. Ich denke, es war "Young Millie", die gepostet, aber dann gelöscht seine Post

oder es war "112g" Ich bin mir nicht sicher.