2014-02-10 128 views
0

[摘要:我需要一種方法來從一個巨大的字符串中刪除換行符令牌(\ n)的,希望沒有正則表達式]找換行字符「 n」的字符串

對於我的CS類,我們有從文本文件中讀取迷宮,其看起來像這樣:

############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 
############################## 
############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 
############################## 
############################## 
############################## 
#@...........................# 
############################## 
############################## 
############################## 
############################## 
############################## 
############################## 
------------------------------ 

虛線表示分開的樓層。這是一個3D迷宮。

這只是一個閱讀迷宮的測試,所以這些作品是無關緊要的。我們必須使用Scanner類將整個迷宮讀入單個字符串,但是我們必須能夠測試每個人(x,y,z)並返回當前存在的字符。我的想法是將巨大的字符串分隔成三維字符數組(char [] [] []),但這需要從巨大的迷宮字符串中刪除換行符。有沒有辦法從大量字符串中刪除\ n標記,希望不使用正則表達式。我環顧四周,但無法找到一個堅實的答案。很多人都建議使用正則表達式,但我不太熟悉這個,如果可能的話,我想避免它。感謝你的幫助。

+0

如果你想一個字符串分割成線,走在'String'類的Javadoc看一個名爲'split'方法。 –

+0

如果您使用'Scanner',則可以使用['Scanner#nextLine'](http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine %28%29)迭代地消耗每行,並在讀取每行時刪除換行符。 – ajp15243

回答

3

使用替換:

String input="###...##"; 
String output=input.replace("\n",""); 
+0

我在發佈這個問題後不是5分鐘就想出了自己。我現在覺得很無知。我只是一直盯着這個問題很長時間,即使最明顯的解決方案也變得不那麼明顯。在時間限制後,將標記爲答案。謝謝。 –

0

如果你讀線爲String S,你可以使用trim()方法:

String line = "...\n".trim(); 

公共字符串修剪():返回副本字符串,省略了前導和尾隨空白。

0

Java會將新行字符識別爲單個字符,即「\ n」是單個字符。所以我猜如果您使用掃描儀來讀取每個字符,那麼您可以包含一個if條件,以便每當檢測到新行字符時,它都會忽略它。 喜歡的東西:

if(character!="\n") 
{ 
    //your code to keep the character into the array 
}