【问题标题】:Remove apostrophe and white space from string从字符串中删除撇号和空格
【发布时间】:2014-01-05 12:47:33
【问题描述】:

所以我在玩字符串操作。我已经用连字符替换了空格字符。现在我想结合替换空格字符和从字符串中删除撇号。我该怎么做?

这是我迄今为止尝试过的:

    String str = "Please Don't Ask Me";
    String newStr = str.replaceAll("\\s+","-");

    System.out.println("New string is " + newStr);

输出为:

Please-Don't-Ask-Me

但我希望输出为:

Please-Dont-Ask-Me

但我无法删除撇号。有任何想法吗?非常感谢您的帮助。谢谢。

【问题讨论】:

    标签: java


    【解决方案1】:

    试试这个:

    String newStr = str.replaceAll("\\s+","-").replaceAll("'", "");
    

    第一个 replaceAll 返回字符串,其中所有空格都替换为 -,然后我们在此执行另一个 replaceAll 以将所有 ' 替换为空(意思是,我们正在删除它们)。

    【讨论】:

    • 这没问题,除非您处理的是非常大的字符串...在这种情况下,需要一个显式的 matcher.find() - matcher.appendReplacement() 循环。
    • @MarkoTopolnik Indeed.
    • @MarkoTopolnik 你能给我一些 matcher.find() 的实现吗?我发现这些教程对于初学者来说非常混乱
    • 您是否点击了上面 Maroun 的“Indeed”超链接?我相信答案涵盖了它。
    【解决方案2】:

    很简单,在结果字符串上再次使用replaceAll

    String newStr = str.replaceAll("\\s+","-").replaceAll("'","");
    

    【讨论】:

    • 这与我的回答有何不同?
    • 当我打字时冷静的人没有答案。你打字比我快一点……
    • 当我有足够的冒险精神可以通过手机接听电话时,有时会发生这种情况......
    • @shashanksoni 我没有投反对票,也发生在我身上。没问题我的朋友。 +1。
    • @sᴜʀᴇsʜᴀᴛᴛᴀ 在阅读了 Marko 的评论后,我意识到这也发生在我身上 :)
    【解决方案3】:

    试试这个..

    String s = "This is a string that contain's a few incorrect apostrophe's. don't fail me now.'O stranger o'f t'h'e f'u't'u'r'e!";
            System.out.println(s);
    
            s = s.replace("\'", "");
    
            System.out.println("\n"+s);
    

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2016-08-17
      • 2015-07-07
      相关资源
      最近更新 更多