You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.9 KiB
66 lines
1.9 KiB
package com.novel.read.utlis
|
|
|
|
import android.content.Context
|
|
import android.text.TextUtils
|
|
import com.novel.read.widget.page.ReadSettingManager.Companion.SHARED_READ_CONVERT_TYPE
|
|
|
|
import com.spreada.utils.chinese.ZHConverter
|
|
|
|
object StringUtils {
|
|
|
|
/**
|
|
* 将文本中的半角字符,转换成全角字符
|
|
*/
|
|
fun halfToFull(input: String): String {
|
|
val text = deleteImgs(input)
|
|
val c = text.toCharArray()
|
|
for (i in c.indices) {
|
|
if (c[i].toInt() == 32)
|
|
//半角空格
|
|
{
|
|
c[i] = 12288.toChar()
|
|
continue
|
|
}
|
|
//根据实际情况,过滤不需要转换的符号
|
|
//if (c[i] == 46) //半角点号,不转换
|
|
// continue;
|
|
|
|
if (c[i].toInt() in 33..126)
|
|
//其他符号都转换为全角
|
|
c[i] = (c[i].toInt() + 65248).toChar()
|
|
}
|
|
return String(c)
|
|
}
|
|
|
|
private fun deleteImgs(content: String?): String {
|
|
return if (content != null && !TextUtils.isEmpty(content)) {
|
|
// 去掉所有html元素,
|
|
var str =
|
|
content.replace("&[a-zA-Z]{1,10};".toRegex(), "").replace("<[^>]*>".toRegex(), "")
|
|
str = str.replace("[(/>)<]".toRegex(), "")
|
|
str
|
|
} else {
|
|
""
|
|
}
|
|
}
|
|
|
|
fun delete160(des: String): String {
|
|
var text = des
|
|
text = text.replace(" ".toRegex(), "")
|
|
text = text.replace("&#160;".toRegex(), "")
|
|
text = text.replace("\\s*".toRegex(), "")
|
|
text = text.trim { it <= ' ' }
|
|
return text
|
|
}
|
|
|
|
//繁簡轉換
|
|
fun convertCC(input: String): String {
|
|
val convertType = SpUtil.getIntValue(SHARED_READ_CONVERT_TYPE, 1)
|
|
|
|
if (input.isEmpty())
|
|
return ""
|
|
|
|
return if (convertType != 0) ZHConverter.getInstance(ZHConverter.TRADITIONAL).convert(input) else input
|
|
}
|
|
|
|
}
|
|
|