带子字符串的java StringIndexOutOfBoundsException
这是我的代码:
String s = word;
String[] split = s.split(Dictionary.searchTerm);
String s1 = split[0];
String s2 = split[1];
String cut1 = "...";
String cut2 = s2.substring(0, 20);
我得到由String cut2 = s2.substring(0, 20);
行引起的java.lang.StringIndexOutOfBoundsException: length=17; regionStart=0; regionLength=20
我想做的是,例如,这是原始字符串s
谷歌
安卓
Gmail
Youtube
苹果
iOS
Mac
微软
Windows
searchTerm
是Youtube,因此需要的字符串是
。。。Youtube苹果
如何解决这个问题?基本上,我试图实现的是将搜索词之前的字符串替换为。。。并在搜索词后添加字符串的部分
# 1 楼答案
抛出StringOutOfBoundsException是因为假设cut2在索引20处结束,而字符串没有那么长。你需要计算
s2
的长度,而不是硬编码20。如果您希望s2
的长度为21,那么您可能需要检查它是否存储了您认为它存储的内容# 2 楼答案
您的需求可以通过以下代码实现,而不是经过严格测试