算法题:随机生成100个字符的字符串,并统计出由123组成的子字符串的个数。
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Random;
public class MainTest {
public static void main(String[] args) {
String[] str = new String[100];
StringBuffer buffer = new StringBuffer(100);
for (int i = 0; i < str.length; i++) {
str[i] = randomString(1);
buffer.append(str[i]);
}
System.out.println(buffer);
int count = method1(buffer.toString(), "123");
System.out.println("123子字符串的个数是:" + count);
}
/**
* 统计重复个数
将匹配的字符去掉,去掉匹配后字符的长度/子串的长度 = 匹配的个数
* @param buffer
* @param a
* @return
*/
public static int method1(String buffer,String a){
int len = buffer.length() - buffer.replace(a,"").length();
return len / a.length();
}
/**
* 生成随机数 仅数字
* @param a
* @return
*/
public static String randomString(int a) {
char[] cs = new char[a];
String pool = "";
for (short i = '0'; i <= '9'; i++) {
pool = pool + (char) i;
}
for (int h = 0; h < cs.length; h++) {
int index = (int) (Math.random() * pool.length());//产生一个pool范围内的随机数
cs[h] = pool.charAt(index);//返回指定索引处的字符
}
String str1 = new String(cs);
return str1;
}
}