gpt4 book ai didi

查找重复组的 Java 模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:01 24 4
gpt4 key购买 nike

我想得到循环分数中的重复部分。例如,如果分数是 0.6666667,我想得到 0.67 和重复部分 (6) 或 0.36363636 0.36 和 (36) 作为匹配器组。我尝试在 Java 中使用捕获组,但我不确定我做得对不对。这是我现在拥有的:

String patt = "(.+?)\\1+";

不幸的是,这将 0.003003003 匹配为“0”。有什么办法可以得到“003”吗?

最佳答案

我真的看不出您要解决的根本问题。看来您想要做的不是文本摆弄,而是舍入

试试这个:

BigDecimal r = new BigDecimal("0.66666667").setScale(2, RoundingMode.HALF_UP);
System.out.println(r);

它将显示:

0.67

类似地,对于 0.363636...,它会给你 0.36 等等。

如果你真的想使用正则表达式,并且你所有的输入在小数点前都有 0,你也许可以试试

0\.(.+?)\\1+

关于查找重复组的 Java 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31188501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com