2016-12-01 57 views
0
另一個變量,其餘

我試圖讓一個文本的一個變量在另一個變量第一段(直到一個換行符),剩下的事情。獲取字符串直到換行,和它在Java中

例如,對於像文本:

你好你怎麼樣我真的很好,謝謝你,你,我沒事。謝謝 很多再見。
foo bar隨機文本foo bar隨機文本foo bar隨機 文本foo bar隨機文本foo bar隨機文本。
blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah。

我的目標是獲得

String firstpart = "hello how are you im really fine thank you, and you, im fine. thanks a lot good bye." 
String restofit = "foo bar random text foo bar random text foo bar random text foo bar random text foo bar random text \n lahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah." 

這是我的嘗試:

String[] result = mytext.split("\n", 2); 
System.out.println(result[0]); 
if (result[1] != null) System.out.println("nas"); 

但我對result[1]線得到java.lang.ArrayIndexOutOfBoundsException: 1(也許不是與示例文本,但與我的真實文本),當輸入字符串只由一行組成。

我的方法是否正確?我該如何解決這個錯誤?

在此先感謝。

+0

只需在訪問第一個索引之前檢查輸出數組的大小。 –

回答

0

您需要轉義反斜線:

String[] result = mytext.split("\\R",2); 
//check length of result: 
if(result.length >1){ 
    //do what you need with result[1]; 
} 

的Java變成一個雙反斜線\\在一個字符串轉換爲在運行一個反斜槓。這是因爲特殊字符,如",'

+0

謝謝,但我仍然在同一行上得到相同的錯誤。 –

+0

無論您傳遞文字換行還是正則表達式轉義序列,正則表達式引擎都沒有區別。 –

+0

@WiktorStribiżew權,糾正答案 – ItamarG3