如何轻松解决kotlin字符串算数等式计算

本文介绍了一个简单的四则运算表达式解析及计算方法。利用 Kotlin 实现了字符串表达式的拆分和计算逻辑,能够处理加、减、乘、除四种基本运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:

  下面代码都是用kotlin代码开发,其实跟java语言开发差不多,算法思路是一样。
该算法只能对加、减、乘、除进行基本运算,对复杂等式不能计算,记住,不要等一下说博主坑你们。

一、把字符串等式转化为子字符串

首先,把字符串转换为字符数组,并对每一个字符进行判断,该字符是数字,设置一个变量,来存储数字,当下一个字符是运算符,先判断存储数字变量中是否为空,如果不为空,就把该变量数据添加到字符串集合中,并把字符也进行存储,详细代码如下:

 private fun countNum(result: String): Int {
        val numArray: CharArray = result.toCharArray()
        val m = ArrayList<String>()

        var num: String = ""
        for (n in 0..numArray.size - 1) {
            val char = numArray[n].toString()
            when (char) {
                "-", "+", "*", "/" -> {
                    if (!num.isEmpty()) {
                        m.add(num)
                        num = ""
                    }

                    num += char
                    m.add(num)
                    num = ""
                }
                else -> {
                    num += char
                    if (n == numArray.size - 1) {
                        m.add(num)
                    }
                }
            }

        }
        return num(m)
    }

二、对等式进行运算。

通过集合中数据获取乘、除运算符号个数,并通过一个变量存储以来,计算个数方便到时候循环计算乘、除次数,接下来进行计算,遍历集合中数据,进行计算运算符号前一个数字和后一个数字,并存储到集合中,移除参加运算数据。
先计算乘除,再计算加减
 private fun num(number: ArrayList<String>): Int {
        var one: Float
        var two: Float
        var result: Float = 0f
        var count: Int = 0
        var total:Int=0
        var flag:Int=0
        //计算出有乘除个数
        (0..number.size - 1)
                .filter { number[it] == "*" || number[it] == "/" }
                .forEach { count += 1 }

        for (m in 0..count) {
            loop@ for (n in 0..number.size - 2) {
                val m = number[n]
                when (m) {
                    "*", "/" -> {
                        one = number[n - 1].toFloat()
                        two = number[n + 1].toFloat()
                        if ("*" == m) {
                            result = one * two
                        } else if ("/" == m) {
                            result = one / two
                        }
                        number[n] = result.toString()

                        number.removeAt(n + 1)
                        number.removeAt(n - 1)
                        break@loop
                    }
                }

            }
        }
        System.out.println("数据1"+number.toString())
        for(m in 0..number.size-1){
            val n = number[m]
            when(n){
                "+","-" ->{
                    if ("+" == n) {
                        flag=0
                    } else if ("-" == n) {
                        flag=1
                    }

                }
                else ->{
                    if(flag==0){
                        System.out.println(number[m].toFloat().toInt())
                        total += number[m].toFloat().toInt()
                    }else if(flag==1){
                        total -= number[m].toFloat().toInt()
                    }
                }
            }
        }

        System.out.println("数据2"+number.toString())
        return total
    }


到这里就结束,其实很简单。

### Kotlin 字符串拼接方法与示例 在 Kotlin 中,字符串拼接可以通过多种方式实现,包括使用加号操作符 `+`、字符串插值 `$` 或 `${}`、以及 `StringBuilder` 等工具。以下是几种常见的字符串拼接方法及其示例代码。 #### 方法一:使用加号操作符 `+` Kotlin 支持通过 `+` 操作符来拼接字符串,这种方式简单直观,但每次拼接都会创建一个新的字符串实例[^1]。 ```kotlin fun main() { var s: String = "Kotlin" s = s + " is" s = s + " a" s = s + " new" s = s + " programming" s = s + " Language" println(s) // 输出: Kotlin is a new programming Language } ``` #### 方法二:使用 `plus` 函数 `plus` 是 Kotlin 提供的一个函数,用于将字符串与其他对象拼接。它与 `+` 操作符的功能类似[^1]。 ```kotlin fun main() { var s: String = "Kotlin" s = s.plus(" is") s = s.plus(" a") s = s.plus(" new") s = s.plus(" programming") s = s.plus(" Language") println(s) // 输出: Kotlin is a new programming Language } ``` #### 方法三:使用字符串插值 `$` 或 `${}` Kotlin字符串插值功能允许直接在字符串中嵌入变量或表达式,避免了繁琐的拼接操作[^3]。 ```kotlin fun main() { val language: String = "Kotlin" val year: Int = 2011 val message = "$language was released in $year." println(message) // 输出: Kotlin was released in 2011. } ``` 如果需要插入表达式,可以使用 `${}`: ```kotlin fun main() { val x: Int = 5 val y: Int = 10 val result = "${x + y} is the sum of $x and $y." println(result) // 输出: 15 is the sum of 5 and 10. } ``` #### 方法四:使用 `StringBuilder` 当需要在循环中频繁拼接字符串时,推荐使用 `StringBuilder`,因为它可以避免多次创建新的字符串实例,从而提高性能[^2]。 ```kotlin fun main() { val sb = StringBuilder() sb.append("Kotlin") sb.append(" is") sb.append(" a") sb.append(" new") sb.append(" programming") sb.append(" Language") println(sb.toString()) // 输出: Kotlin is a new programming Language } ``` #### 方法五:使用 `String.format` 如果需要按照特定格式化规则拼接字符串,可以使用 `String.format` 函数[^5]。 ```kotlin fun main() { val name: String = "Alice" val age: Int = 25 val formattedString = String.format("Name: %s, Age: %d", name, age) println(formattedString) // 输出: Name: Alice, Age: 25 } ``` ### 总结 Kotlin 提供了多种灵活的字符串拼接方式,开发者可以根据具体需求选择合适的方法。对于简单的拼接操作,可以直接使用 `+` 或字符串插值;而在需要高性能的场景下,则推荐使用 `StringBuilder`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值