2015-04-07 70 views
-1

我需要格式化字符串,由冒號分隔和分號(具體如何只替換Java中的某些字符?

Apartment or Building Number;Street Address:City:State Postal Code (i.e. NY):Zip Code 

,並把它改爲

Apartment or Building Number 
Street Address 
City, State Zip Code 

到目前爲止,我有

public class MultiLine { 
public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    System.out.print("Please enter an address formatted as such: 'Apartment or Building Number" 
      + ";Street Address:City:State Postal Code (i.e. NY):Zip Code' \nFor example, Building Room 012;123 Fake Lane:Somewhere:NC:28500 \nPlease enter your address now: "); 
    String text = input.nextLine(); 
    String text1 = text.replace(';', '\n'); 
    String text2 = text1.replace(':', '\n'); 

    System.out.print(text2); 

     } 

} 

這但是,它並不能真正起作用,因爲它會用一條新線代替所有的冒號,當我只想要1被替換時,我不完全確定如何使用replaceFirst,因爲每次我使用它,它說我不能將字符轉換爲字符串,但這顯然不是replace的問題。我不能分割字符串,主要是因爲我沒有覆蓋。 (我也沒有覆蓋的replace命令,但它似乎最有意義。)我也有不知道如何使用regex

+0

字符串'State Postal Code(ie NY)'?我以前已經問過你這個問題。 –

+0

'replaceFirst'需要一個正則表達式,而不是一個字符。但是,由於':'和';'在正則表達式中不是特殊字符,因此可以簡單地使用一個字符的字符串,例如'text.replaceFirst(「;」,「\ n」);',它會起作用。對於特殊的字符,您必須包含反斜槓(並且您必須反斜槓反斜槓),例如'text.replaceFirst(「\\。」,「\ n」);'如果你想替換句點字符。 – ajb

+0

它仍然在那裏,Avinash拉傑。我只是將它縮短爲「國家」 –

回答

0

看到replaceFirst請求字符串,這樣你就可以以這種方式使用它:

text.replaceFirst(";", "\n") 
+0

哦,所以我不得不用引號替換撇號? –

+0

「帶引號的撇號」,我不明白 –

+0

我有text.replaceFirst(';','\ n'),並沒有工作,但我將它改爲text.replaceFirst(「;」,「 \ n「),那有效,換句話說,我把'(撇號)改爲」(引號) –

0
public static void main(String[] args) { 
    String text = "Apartment or Building Number;Street Address:City:State Postal Code (i.e. NY):Zip Code"; 
    String text1 = text.replace(';', '\n'); 
    String text2 = text1.replaceFirst(":", "\n"); 

    System.out.print(text2); 
} 
相關問題