2013-10-01 41 views
1

以前可能已經提出過這個問題,但我還沒有遇到過答案。我有一個字符串,看起來像匹配字符串中的「 n」

" ___________________ \n|_ | ___ _ _|\n| | | _|___|" 

我正在傳遞給一個java程序作爲命令行參數。直接粘貼該字符串作爲命令行參數。

我在程序的第一行是

String [] array = args[0].split("\n"); 

我想將它拆分的「\ n」,但我似乎不能分裂做(「\ n」)或拆分(」 \\ N「)。我究竟做錯了什麼?

+7

請發佈一個簡短但完整的程序來演示此問題。我們無法確切知道您嘗試了什麼或發生了什麼。我們也不知道字符串*是否包含一個反斜槓和一個'n'或者它是否實際上是一個換行符。 –

+0

請提供一些您使用的代碼。 \ n是行分割的完美答案 – Ameer

+0

我將精確的字符串作爲命令行參數傳遞。我的程序的第一行顯示爲 String [] array = args [0] .split(「\ n」); – user2833546

回答

0

如果你的字符串包含文字反斜線通過您在使用split("\\\\n")與之相匹配的。

說明:要匹配正則表達式中的反斜槓,您必須將其移除,因此正則表達式爲\\n。要通過java字符串文字輸入,你必須在正則表達式中反轉兩個反斜槓中的每一個,所以它變成"\\\\n"

...只是不問我有關匹配雙反斜槓;-)

2

嘗試

String str =" ___________________ \n|_ | ___ _ _|\n| | | _|___|"; 
String[] arr = str.split("\n"); 
System.out.println(Arrays.deepToString(arr)); 
+2

你正在逃避換行 – Anirudha

+0

@Anirudh謝謝,現在更新 – upog

1
\n - New Line Feed  
\r - Carriage Return  


String input = "___________________ \n|_ | ___ _ _|\n| | | _|___|"; 
String[] splitValue = input.split("[\\r\\n]+"); 
+1

使\ r可選..不要工作的文本沒有\ r – Anirudha

+0

@安尼迪感謝您的建議。 – newuser

1
String data=" ___________________ \n|_ | ___ _ _|\n| | | _|___|";  
String data1[]=data.split("\\n"); 
System.out.println(data); 

給出輸出。

___________________ 
|_ | ___ _ _| 
| | | _|___| 
2

試試這個

String lines[] = String.split("\\r?\\n");