我有一个没有空格的字符串,我想创建一个由单词的子字符串组成的数组。例如,假设字符串是 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;
}
最佳答案
您的代码有两个问题。一、中的“3”
s.substring(i, 3)
表示从字符串开头开始的第 3 个索引,而不是从 i 开始的第 3 个索引,所以您需要
s.substring(i, i + 3)
其次,如果字符串比 i + 3 短,你会得到一个异常。要解决这个问题,您可以使用 Math.min。它看起来像这样:
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, Math.min(i + 3, i.length())));
}
return words;
关于java - 从字符串创建子字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231684/