请高手赐教,为什么一直报错啊???
==============================================================================
public class StringDemo { /**
* @param args
* 计算字符串中子串出现的次数
*/
public static void main(String[] args) {
String superStr="123asd456jkl1123asasd";
String subStr="as";
int count=0;
for(int i=0;i<superStr.length()-2;i++){
for(int j=1;j<subStr.length();j++){
if(superStr.subSequence(i,j).equals("as")){
count++;
}
}
}
System.out.println(count);
}
}----------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1938)
at day08_myself.StringDemo.main(StringDemo.java:15)
==============================================================================
public class StringDemo { /**
* @param args
* 计算字符串中子串出现的次数
*/
public static void main(String[] args) {
String superStr="123asd456jkl1123asasd";
String subStr="as";
int count=0;
for(int i=0;i<superStr.length()-2;i++){
for(int j=1;j<subStr.length();j++){
if(superStr.subSequence(i,j).equals("as")){
count++;
}
}
}
System.out.println(count);
}
}----------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1938)
at day08_myself.StringDemo.main(StringDemo.java:15)
另:
想统计子串的个数,采用indexof或正则表达式可以有更简洁的算法,你不妨思考一下public class StringDemo { /**
* @param args
* 计算字符串中子串出现的次数
*/
public static void main(String[] args) {
String superStr="123asd456jkl1123asasd";
String subStr="as";
int count=0;
for(int i=0;i<superStr.length()-1;i++){
for(int j=1;j<subStr.length();j++){
if(superStr.subSequence(i,i+2).equals("as")){
count++;
}
}
}
System.out.println(count);
}
}
* @param args
* 计算字符串中子串出现的次数
*/
public static void main(String[] args) {
String superStr = "123asd456jkl1123asasdaas";
String subStr = "as";
int count = 0;
for (int i = 0; i < superStr.length() - 1; i++) {
if (superStr.subSequence(i, i + 2).equals("as")) {
count++;
}
}
System.out.println(""+count);
}
}