feiyu02
2025-03-28 7d74f3fd087d4a8192ed556a6c2e3a2ea3c81cff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package cn.flightfeather.supervision.common.utils
 
import net.sourceforge.pinyin4j.PinyinHelper
 
class PinYin {
 
    companion object{
        fun getPinYinHeader(str: String): String {
 
            val temp = str.trim()
            val result = StringBuilder()
            for (i in temp.indices) {
                if (i >= 6) {
                    break
                }
                val it = temp[i]
                if (it in 'a'..'z' || it in 'A'..'Z' || it in '0'..'9') {
                    result.append(it.toString()) //如果字符串是英文不改变
                } else {
                    PinyinHelper.toHanyuPinyinStringArray(it)?.let { pinyin ->
                        result.append(pinyin[0].elementAt(0) + "")
                    }
                }
            }
 
            return result.toString()
        }
 
        /**
         * 第一个文字获取完整拼音,之后的只取首字母
         */
        fun getPinYinHeader2(str: String): Array<String>? {
            val temp = str.trim()
            val result = mutableListOf<String>()
            var i = 0
            temp.forEach {
                //                if (i >= 6) {
//                    return@forEach
//                }
                if (it in 'a'..'z' || it in 'A'..'Z' || it in '0'..'9') {
                    result.add(it.toString()) //如果字符串是英文不改变
                } else {
                    PinyinHelper.toHanyuPinyinStringArray(it)?.let { pinyin ->
                        if (i == 0) {
                            result.add(pinyin[0].dropLast(1))
                        } else {
                            result.add(pinyin[0].elementAt(0) + "")
                        }
                    }
                }
                i++
            }
 
            return result.toTypedArray()
        }
    }
 
}