package negative;java
/**
* 统计字符串中包含的子串(字符个数>1)个数
*
* @author Administrator
*
*/
public class StatisticalStringNumber {
public static void main(String args[]) {eclipse
String string = "javajava_eclipse_class_jajavavajavajdjdj";
String str = "java";
method_1(string, str); // 方法一
method_2(string, str); // 方法二
method_3(string, str); // 方法三
method_4(string, str); // 方法四
method_5(string, str); // 方法五
}
/**
* 方法一
*
* @param string
* @param a
*/
public static void method_1(String string, String a) {
int i = string.length() - string.replace(a, "").length();
System.out.println("方法一 ---> 个数" + i / a.length());
}ip
/**
* 方法二
*
* @param string
* @param a
*/
public static void method_2(String string, String a) {
String[] array = string.split(a);
if (array != null)
{
System.out.println("方法二 ---> 个数" + (array.length - 1));}
}字符串
/**
* 方法三
*
* @param string
* @param a
*/
public static void method_3(String string, String a) {
int number=0;
while(string.indexOf(a)>=0){
int beginIndex=string.indexOf(a);
/*在string中剔除字符串a。
可是要注意jajaveve的状况,在第一次去除字符串java后,java前面的字符为"ja",后面的字符为“va”
又从新组合为java。故,在链接先后字符串时,加入其它替换字符,本方法中,采用空格字符。
*/
string=string.substring(0, beginIndex)+" "+string.substring( beginIndex+a.length());
number++;
}
System.out.println("方法三 ---> 个数" +number);
}
/**
* 方法四
* @param str
* @param a
*/
private static void method_4(String string,String a) {
int number = 0;
int len = a.length();
int index = 0;
for(int i=0; i<string.length();i=len+index) {
if((index = string.indexOf(a, i)) > -1)
number ++;
else
break;
}
System.out.println("方法四 ---> 个数" +number);
}
/**
* 方法五
* @param str
* @param a
*/
public static void method_5(String string, String a) {
int counter = 0;
for (int i = 0; i <= string.length() - a.length(); i++) {
if (string.substring(i, i + a.length()).equals(a)) {
counter++;
}
}
System.out.println("方法五 ---> 个数" +counter);
}string
}it