java.lang.StringIndexOutOfBoundsException:length = 0;索引= 0

时间:2018-04-02 06:06:17

标签: kotlin

 fun getNameAlias(str: String): String {

        var nameLetter = ""
        if (!TextUtils.isEmpty(str)) {
            nameLetter = str!![0].toString()
        }
        if (!TextUtils.isEmpty(str.split("\\s ")[0])) {
            var index: Int = str.indexOf(" ")
            if (index > 0) {

                nameLetter += if (index == -1) "" else str.substring(index + 1)[0]
            }
        }
        return nameLetter
    }

这是我的第一个包机和最后一个字符的功能,当我在空格之前传递字符串第一个字符并且在空格之后传递第一个字符但是对于某些字符是空白或特殊字符我得到

  

java.lang.StringIndexOutOfBoundsException:length = 0; index = 0

如何解决这个问题?我尝试了if (index > 0) { },但问题仍然存在。

1 个答案:

答案 0 :(得分:0)

对于示例字符串" Basi" If (index > 0)部分代码处理错误。如果找不到" ",则索引变量返回-1 对于字符串"Basi ",您应该更新代码
if (index == -1)

if (index == str.length-1)

为了获得额外的空间,您可以将else部分更新为

" " + str.substring(index + 1)[0]

if (index == str.length-1) "" else " " + str.substring(index + 1)[0]