2014-02-10 133 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 
}