【问题标题】:Finding the Newline Character "\n" in a String在字符串中查找换行符“\n”
【发布时间】:2014-02-10 05:30:28
【问题描述】:

[摘要:我需要一种从大量字符串中删除换行符 (\n) 的方法,希望没有正则表达式]

对于我的 CS 课,我们必须从一个文本文件中读取迷宫,它看起来像这样:

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

虚线表示不同的楼层。这是一个 3D 迷宫。

这只是一个阅读迷宫的测试,所以碎片无关紧要。我们必须使用 Scanner 类将整个迷宫读入单个字符串,但随后我们必须能够测试每个个体 (x,y,z) 并返回该点存在的字符。我的想法是将巨大的字符串分成一个 3 维字符数组(char[][][]),但这需要从巨大的迷宫字符串中删除换行符。有没有办法可以从大量字符串中删除 \n 标记,希望不使用正则表达式。我环顾四周,但找不到一个可靠的答案。很多人建议使用正则表达式,但我不太熟悉这样做,并希望尽可能避免使用它。感谢你的帮助。

【问题讨论】:

  • 如果您使用的是Scanner,您可以迭代地使用Scanner#nextLine 来消耗每一行并在读取每一行时删除换行符。
  • 如果你想把一个字符串分成几行,查看String类的javadoc中一个名为split的方法。

标签: java regex string maze


【解决方案1】:

使用替换:

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

【讨论】:

  • 我在发布这个问题后不到 5 分钟就发现了这一点。我现在觉得很无知。我一直盯着这个问题这么久,即使是最明显的解决方案也变得不那么明显了。时间限制后将标记为答案。谢谢。
【解决方案2】:

如果您将行读取为Strings,则可以使用trim() 方法:

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

public String trim():返回字符串的副本,省略前导和尾随空格。

【讨论】:

    【解决方案3】:

    Java 会将换行符识别为单个字符,即“\n”是单个字符。所以我想如果你使用扫描仪来读取每个字符,那么你可以在其中包含一个 if 条件,这样每当检测到换行符时,它都会忽略它。 比如:

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

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多