java 統計字符串中 子字符串個數

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

相關文章
相關標籤/搜索