2013-08-29 153 views
-1

我有一個這樣的字符串:拆分字符串在Java中,根據拆分規則?

String str="\"myValue\".\"Folder\".\"FolderCentury\""; 

是否有可能通過.上述字符串分割,而不是獲得三個生成的字符串也只有兩等,但是:

columnArray[0]= "myValue"."Folder"; 
columnArray[1]= "FolderCentury"; 

還是我必須使用一個其他的Java方法來完成它?

+1

你可以概括這更多?如果需要根據下面的答案工作..但如果你可以給一些更廣泛的場景,這將有所幫助。 – dharam

+1

你上面有什麼不是一個有效的字符串。在Java中,您不能在不轉義字符的情況下使用引號。出於同樣的原因,您的第一個作業也是無效的。請更新您的問題並修復這些錯誤,以幫助我們更好地理解您的問題。 –

+0

@Dusan這是JSON對象的到來,並且所有內容都與我在問題中定義的相同。 – Programmer

回答

3

正如我貼在原始郵政(here),下一個代碼:

String input = "myValue.Folder.FolderCentury"; 
    String regex = "(?!(.+\\.))\\."; 
    String[] result=input.split(regex); 
    System.out.println("result: "+Arrays.toString(result)); 

可生產所需的輸出(具有兩個值的數組):

result: [myValue.Folder, FolderCentury] 
+0

它再次返回字符串,現在我不得不再次從逗號(「,」)分割 – Programmer

+0

不,它只是一個表示。它是一個具有這兩個值的字符串數組... –

+0

是的謝謝你的更新 – Programmer

4

試試這個。

 String s = "myValue.Folder.FolderCentury"; 
    String[] a = s.split(java.util.regex.Pattern.quote(".")); 

嗨程序員/ Yannish,

首先分裂的( 「」)將無法正常工作,這將不返回任何結果。我認爲java String拆分方法不適用。所以請嘗試使用java.util.regex.Pattern.quote(「。」)而不是split(「。」)

+1

對於downvoter:您_do_需要'java.util.regex.Pattern.quote(「。」)'這是正確的(或者您需要手動輸入您的字符串作爲' 「\\。」')。 'java.lang.String.split()'將一個_regular expression_作爲參數,而不僅僅是一個特定的字符串來分割。如果沒有這種修改,它會在_every character_上拆分字符串,從而導致產生一個「s.length()+ 1」空字符串數組。 – AJMansfield

3

如果您試圖解決的問題確實存在,那麼您甚至可以做到不使用正則表達式匹配的所有:

int lastDot = str.lastIndexOf("."); 
columnArray[0] = str.substring(0, lastDot); 
columnArray[1] = str.substring(lastDot + 1); 
+0

爲此,我們再添加3個變量 – Programmer

+0

@程序員您必須添加*一個*臨時變量'lastDot'。這是正確的。爲什麼這是一個問題? – Thomas