我想编写将字符串拆分为单独子串的代码,每个子串都有3个字符 并将它们分配给一个字符串数组,例如字符串" abcdefg"可以吐到" abc"," bcd"," cde"," efg"并将这些分配给字符串数组。我有以下代码收到错误:
String[] words = new String[] {};
String sequence = "abcdefg";
int i;
for(i = 0; i <= sequence.length()-3; i++) {
words[i] = sequence.substring(i, 3+i);
System.out.println(words[i]);
}
答案 0 :(得分:6)
String[] words=new String[] {}; // empty array
你有空数组。
words[i] // when i=0
空array
与0
索引匹配时没有索引。
解。
您可以在定义array
时定义数组的大小。最好的方法是从length
sequence
String sequence="abcdefg";
String[] words=new String[sequence.length()];
答案 1 :(得分:1)
请改用以下代码:
String sequence="abcdefg";
String[] words=new String[sequence.length()-2];
int i;
for(i=0;i<=(sequence.length()-3);i++){
words[i]=sequence.substring(i,3+i);
System.out.println(words[i]);
}
或者你可以使用字符串的arraylist
答案 2 :(得分:0)
您可以从序列字符串中获取长度除以您要存储的字符数,以便了解您的数组应该有多大。例如
String sequence="abcdefg";
int myLength = sequence.length/3;
String[] words=new String[myLength];
然后您可以使用该长度来填充数组
for(i=0;i<=myLength;i++){
words[i]=sequence.substring(i,3+i);
System.out.println(words[i]);
}