android超长字符串分段处理

  • 根据字符串的长度是否超过定义的最大长度来做决定是否做分段打印
  • 以JSON格式展示分页数据
  private val LOG_MAX_LENGTH = 10
    
    /**
     * 根据字符串的长度是否超过定义的最大长度来做决定是否做分段打印
     */
    private fun handleStringLog(msg: String) {
        var pageNo = 1
        // https://blog.csdn.net/u011595939/article/details/70212552
        val totalPages: Int = (msg.length - 1) / LOG_MAX_LENGTH + 1
        LegoLog.d("总页数:$totalPages")
        // 日志长度超过最大长度分段打印
        if (msg.length > LOG_MAX_LENGTH) {
            var index = 0
            while (index < msg.length) {
                val subMsg: String = if (msg.length <= index + LOG_MAX_LENGTH) {
                    msg.substring(index)
                } else {
                    msg.substring(index, index + LOG_MAX_LENGTH)
                }
                conver2Json(msg.length, totalPages, pageNo, subMsg)
                pageNo++
                index += LOG_MAX_LENGTH
            }
        } else {
            conver2Json(msg.length, totalPages, pageNo, msg)
        }
    }

    private fun conver2Json(totalSize: Int, totalPages: Int, pageNo: Int, data: String){
        val jsonObj = JsonObject()
        jsonObj.addProperty("totalSize", totalSize)
        jsonObj.addProperty("totalPages", totalPages)
        jsonObj.addProperty("pageNo", pageNo)
        jsonObj.addProperty("pageSize", LOG_MAX_LENGTH)
        jsonObj.addProperty("data", data)
        LegoLog.d(jsonObj.toString())
    }

效果展示:

// 方法调用
handleStringLog("123456789")

android超长字符串分段处理_第1张图片

你可能感兴趣的:(代码块,分页展示,超长字符串,分段传输)