将字符串中的分数替换为小数

我需要将给定字符串中的分数替换为十进制。所以:

1/4 xx -> 0.25 xx
1/3 xx -> 0.33 xx

上面的例子我涵盖了:

private fun String.replaceFractions() = "(?:[1-9]*)/[1-9]*".toRegex().find(this)
        ?.let {
            val fraction = it.groups[0]!!.value
            val fractionParts = fraction.split("/")
                    .map { part -> part.toDouble() }
            this.replace(fraction, (fractionParts[0] / fractionParts[1]).toString())
        }
        ?: this

但是当它们也有整个部分时,我找不到正确替换字符串的方法:

1 1/4 xx -> 1.25 xx
3 3/5 xx -> 3.6 xx
维克多·斯特里比尤夫

你可以实现你想要一个单纯的是什么replace

val s = "Some text: 1/4 and 3 3/5"
val result = s.replace("""(?:(\d+(?:\.\d+)?)\s+)?(\d+)/(\d+)""".toRegex()) {
    ((if (it.groupValues[1].isNullOrEmpty()) 0.0 else it.groupValues[1].toDouble()) + (it.groupValues[2].toDouble() / it.groupValues[3].toDouble())).toString()
}    
println(result) // => Some text: 0.25 and 3.6

参见Kotlin 演示

正则表达式详情

  • (?:(\d+(?:\.\d+)?)\s+)? - 一个可选的非捕获组匹配 1 或 0 次出现:
    • (\d+(?:\.\d+)?)- 第 1 组:1+ 位数字,然后是 1 或 0(可选).和 1+ 位数字的序列
    • \s+ - 1+ 个空格
    • (\d+) - 第 2 组:1+ 位数字
  • /- 一个/字符
  • (\d+) - 第 3 组:1+ 位数字

如果第 1 组匹配,则将其值强制转换为双精度值,否则0取值,并将该值与第 2 组和第 3 组划分的结果相加。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字符串中的“ /”替换为“ \ /”

来自分类Dev

将JavaScript字符串中的'-'替换为'-'

来自分类Dev

将字符串中的重复值替换为0

来自分类Dev

将字符串中的所有'='实例替换为'=='

来自分类Dev

将字符串中的最终逗号替换为“和”

来自分类Dev

将%替换为字符串中的数字

来自分类Dev

使用Python将字符串中的“ \\”替换为空格

来自分类Dev

将字符串中的数字替换为数字+“ f”

来自分类Dev

将数组中的空字符串替换为0

来自分类Dev

将{x}替换为字符串中的参数

来自分类Dev

将字符串中的重复值替换为0

来自分类Dev

将字符串中的空格替换为零

来自分类Dev

将字符串替换为数组中的值

来自分类Dev

将字符串替换为 Python 中的匹配模式

来自分类Dev

将Shell脚本中的字符串替换为具有特殊字符的字符串

来自分类Dev

将Shell脚本中的字符串替换为具有特殊字符的字符串

来自分类Dev

熊猫数据框将N个小数后的数字替换为空字符串

来自分类Dev

将字符串中的A替换为B,将B替换为A

来自分类Dev

将[]括号替换为字符串

来自分类Dev

字符串将“ \\\”替换为“ \”

来自分类Dev

将小数部分转换为字符串,并在方括号中重复小数位

来自分类Dev

如何将字符串中随机重复的字符“”替换为交替的字符“”和“”(Python)?

来自分类Dev

如何将字符串转换为int或小数?

来自分类Dev

将字符串转换为数字而不会丢失小数

来自分类Dev

替换整列中字符串的小数点

来自分类Dev

如何将Python数据结构中的所有小数转换为字符串?

来自分类Dev

将特定的字符串字符索引替换为0

来自分类Dev

将所有外来字符替换为字符串

来自分类Dev

Python将字符串中的3个随机字符替换为无重复

Related 相关文章

  1. 1

    将字符串中的“ /”替换为“ \ /”

  2. 2

    将JavaScript字符串中的'-'替换为'-'

  3. 3

    将字符串中的重复值替换为0

  4. 4

    将字符串中的所有'='实例替换为'=='

  5. 5

    将字符串中的最终逗号替换为“和”

  6. 6

    将%替换为字符串中的数字

  7. 7

    使用Python将字符串中的“ \\”替换为空格

  8. 8

    将字符串中的数字替换为数字+“ f”

  9. 9

    将数组中的空字符串替换为0

  10. 10

    将{x}替换为字符串中的参数

  11. 11

    将字符串中的重复值替换为0

  12. 12

    将字符串中的空格替换为零

  13. 13

    将字符串替换为数组中的值

  14. 14

    将字符串替换为 Python 中的匹配模式

  15. 15

    将Shell脚本中的字符串替换为具有特殊字符的字符串

  16. 16

    将Shell脚本中的字符串替换为具有特殊字符的字符串

  17. 17

    熊猫数据框将N个小数后的数字替换为空字符串

  18. 18

    将字符串中的A替换为B,将B替换为A

  19. 19

    将[]括号替换为字符串

  20. 20

    字符串将“ \\\”替换为“ \”

  21. 21

    将小数部分转换为字符串,并在方括号中重复小数位

  22. 22

    如何将字符串中随机重复的字符“”替换为交替的字符“”和“”(Python)?

  23. 23

    如何将字符串转换为int或小数?

  24. 24

    将字符串转换为数字而不会丢失小数

  25. 25

    替换整列中字符串的小数点

  26. 26

    如何将Python数据结构中的所有小数转换为字符串?

  27. 27

    将特定的字符串字符索引替换为0

  28. 28

    将所有外来字符替换为字符串

  29. 29

    Python将字符串中的3个随机字符替换为无重复

热门标签

归档