2012-01-17 171 views
0

我正在編寫將更改java代碼的程序。它將下一行支架系統更改爲行尾支架系統。我正在使用字符串來做到這一點。這裏是我的代碼:更改java源代碼

public static void main(String[] args) throws Exception 
{ 
    File file = new File("test.text"); 
    //PrintWriter output = new PrintWriter(file); 
    Scanner input = new Scanner(file); 

    System.out.println("Does it exist? " + file.exists()); 
    while(input.hasNext()) 
    { 
     String first = input.next(); 
     String second = input.next(); 

     if (first == "{") 
     { 
     second = first.replace("{", "\n{"); 
     System.out.println(second); 
     } 
     else 
     { 
     System.out.println(first); 
     } 
    } 
} 

我test.txt的樣子:

"hello{ how are you{" 

到目前爲止,它只是需要出來的字支架前。我試圖把它放在一個新的線上。

+2

這是作爲一個學術活動嗎?無論如何,你比較字符串與'String.equals()',而不是'=='。而且你不想檢查'「{」'無論如何,你想檢查一個'「{」',除了空格之外什麼都沒有。如果它不只是爲了好玩,請使用Jalopy /等。 – 2012-01-17 20:53:15

+0

作爲第一步,我會專注於*檢測*開放的大括號。嘗試編寫一個程序,按照原樣打印文件,除了每行包含左大括號後打印一些標記。爲了這個練習的目的,請僅使用一個變量而不是'first' /'second'(我認爲在這個階段他們比其他人更容易混淆)。 – NPE 2012-01-17 20:55:35

+0

這就是我想要做的。理論上它應該打印「hello」,然後打印下一行的括號。 – Josh 2012-01-17 20:58:11

回答

0

first .equals("{");當你比較字符串,你需要使用等於沒有==

1

你需要使用.equals()比較字符串。

但是你不需要比較,你需要看看第一個字符串是否包含{,所以你應該使用contains

編輯:來想一想,有沒有必要爲contains兩個變量。一個人應該這樣做:

while(input.hasNext()) 
{ 
    String first = input.next(); 
    String second = first.replace("{", "\n{"); 
    System.out.println(second); 
}