从字符串创建子字符串数组

围棋

我有一个没有空格的字符串,我想创建一个由单词的子字符串组成的数组。例如,让字符串为stackoverflow。数组应类似于:

[堆栈溢出]

我在下面使用的代码确实只给我第一项。任何帮助将不胜感激。

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)

表示从字符串开头的第三个索引,而不是从i开始的第三个索引,因此您需要

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;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章