【问题标题】:Remove n number of dot(.) from String in Java [duplicate]从Java中的String中删除n个点(。)[重复]
【发布时间】:2017-07-28 06:05:52
【问题描述】:

我有以下字符串,我想删除字符串末尾的动态点数(.)。

"abc....."

点(.)可以不止一个

【问题讨论】:

  • 你试过了吗?
  • 您只需删除 .和使用空间
  • String s1="abc....";字符串 replaceString=s1.replaceAll("\\.",""); System.out.println(replaceString);
  • @Batty.. 你为什么问我?

标签: java


【解决方案1】:

试试这个。它使用正则表达式将字符串末尾的所有点替换为空字符串。

yourString.replaceAll("\\.+$", "");

【讨论】:

  • 谢谢兄弟。正是我想要的。
  • 也许需要双反斜杠?
  • 必须是"\\.+$"
  • 哎呀,你是对的
  • 我很好奇为什么我的答案被否决了当你发布的代码甚至无法编译,更不用说测试时,会发生奇怪的事情
【解决方案2】:

可以这样做以删除所有.

String a = "abc.....";
String new = a.replaceAll("[.]", "");

只删除尾随的.

String new = a.replaceAll("//.+$","");

编辑:查看评论。删除最后一个n.

int dotsToRemove = 5; // whatever value n
String new = a.substring(0, s.length()-dotsToRemove);

【讨论】:

  • 我不认为他们只想删除所有点。他们希望收到某种用户输入,指示从末端删除多少点。
  • 像“abc...cba....”这样的字符串会发生什么。他的问题不清楚。
  • 那行不通 - replaceAll() 使用正则表达式,而 '.'匹配任何东西,所以你最终得到一个空字符串。
【解决方案3】:

使用这个功能怎么样?似乎比正则表达式工作得更快

public static String trimPoints(String txt)
    {
        char[] cs = txt.toCharArray();
        int index =0;
        for(int x =cs.length-1;x>=0;x--)
        {
            if(cs[x]=='.')
                continue;
            else
                {
                index = x+1;
                break;
                }
        }

        return txt.substring(0,index);
    }

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2014-11-11
    • 2019-01-01
    • 2017-09-04
    相关资源
    最近更新 更多