java从字符串创建子字符串数组
我有一个没有空格的字符串,我想创建一个由单词的子字符串组成的数组。例如,让字符串为stackoverflow数组应如下所示:
[sta, cko, ver, flo, w]
下面是我使用的代码,它只提供了第一项。任何帮助都将不胜感激
public static ArrayList<String> getWords(String s){
ArrayList<String> words = new ArrayList<String>();
for(int i=0;i<s.length(); i=i+3){
words.add(s.substring(i, 3));
}
return words;
}
# 1 楼答案
您的方法是正确的,但是您的
substring
应该是(i, i+3)
,如下所示:# 2 楼答案
您需要将
i + 3
作为substring
调用的第二个参数传递(它需要开始和结束索引)。另外,我更喜欢编程到List
接口。您可以使用+=
而不是i = i + 3
。当String
中没有三个字母时,需要一个else
子句。像然后,为了完整性,我用一个基本的
main
方法测试了它,如哪些输出(按要求)
# 3 楼答案
您可以通过使用番石榴的Splitter显著缓解:
# 4 楼答案
您的代码有两个问题。首先,是“3”
表示从字符串开头开始的第三个索引,而不是从i开始的第三个索引
其次,如果字符串短于i+3,则会出现异常。要解决这个问题,你可以用数学。min.它看起来像这样:
}