【问题标题】:Help parsing string with random delimiters帮助使用随机分隔符解析字符串
【发布时间】:2010-11-15 00:19:57
【问题描述】:

我一般是编程新手。我正在编写一个程序,该程序一旦启动就需要一个命令行参数和一个输入字符串。它可以转换为 pig latin,撤销 pig latin,或者做 rot13。

我的所有函数都完美运行,但我需要帮助解析输入字符串,因为所有函数一次只能执行一个单词,并且只能包含字母。任何带有分隔符的单词都必须被视为两个单词,例如 no0b 将被视为 no-0-b 而零不会进入函数。

我对这将如何工作的理解是有一个输出字符串并在完成时将单词添加到其中,然后添加分隔符,然后添加下一个单词,依此类推。这可以通过循环来完成,但是有人可以帮我弄清楚如何将输入字符串分解成单词然后移动分隔符吗?提前致谢。

【问题讨论】:

  • 什么定义了分隔符?它是在调用方法之前已知的还是在输入字符串中的某个位置?
  • 单词可以用任何非字母字符分隔。所以任何东西,比如数字或符号。

标签: java string parsing


【解决方案1】:

Visit java doc 网站,只要您有这样的简单问题。您可以在 java 文档中找到很多有用的信息。在文档中搜索 String 对象,您将找到可以从字符串对象调用的所有方法。 String.split([a-zA-Z]) 将根据是字母还是非字母来拆分字符串。

【讨论】:

    【解决方案2】:

    您可以使用String.split(String),它返回一个包含String 的数组,并删除了分隔符。传入的参数是一个正则表达式,用于标识分隔符。不在数组结果中返回。

     "no0b".split("0")
    

    将返回["no","b"]的数组

    【讨论】:

    • 不,String.split() 采用分隔符,而不是分隔符。相信我,我知道:我为 Java 迷们最初捏造的函数编写了文档。顺便说一句,他们也搞砸了其他一些事情。它返回一个长度为 1 的零长度字符串的列表。那是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2012-07-17
    相关资源
    最近更新 更多