黑马程序员技术交流社区
标题:
一道String类方法练习题
[打印本页]
作者:
以梦为马123
时间:
2015-8-24 18:26
标题:
一道String类方法练习题
* 获取一个字符串中指定子串出的次数。比如说“hanbasdnbafllgnbahjnbakqqqqlnbaxi” 在这个字符串中,多有个nba?
作者:
以梦为马123
时间:
2015-8-24 18:40
本帖最后由 以梦为马123 于 2015-8-24 18:41 编辑
public class StringTest2 {
public static void main(String[] args) {
String str = "hanbasdnbafllgnbahjnbakqqqqlnbaxnbai";
String regex = "nba";
// 功能
int count = getCount(str, regex);
int count2 = getCount2(str, regex);
System.out.println(count);
}
/*
* 返回值:统计变量的值 int 参数列表:大串和小串
*/
public static int getCount(String maxString, String minString) {
// 定义统计变量
int count = 0;
// 在大串中查找小串一次
int index = maxString.indexOf(minString);
// 如果返回值不是-1,说明小串在大串中是存在的。
while (index != -1) {
// 统计变量++
count++;
// 把查找过的数据给截取掉,重新赋值给大串
maxString = maxString.substring(index + minString.length());
// 在新的大串中查找一次小串
index = maxString.indexOf(minString);
}
return count;
}
// 优化代码
//
public static int getCount2(String maxString, String minString) {
// 定义统计变量
int count = 0;
// 在大串中查找小串一次
int index = 0;
// 如果返回值不是-1,说明小串在大串中是存在的。
// 判断
while ((index = maxString.indexOf(minString)) != -1) {
// 统计变量++
count++;
// 把查找过的数据给截取掉,重新赋值给大串
maxString = maxString.substring(index + minString.length());
}
return count;
}
}
作者:
joeywr
时间:
2015-8-25 23:33
代码 写的好6
大神 多教教。。。
作者:
a554305211
时间:
2015-8-25 23:42
不错赞一个
作者:
qiaozengji668
时间:
2015-8-25 23:55
顶一下!!!
作者:
平爷
时间:
2015-8-26 00:10
赞一个 ,
作者:
pengbeilin
时间:
2015-8-26 00:13
确实很6666
我有另外一种方法也可以求出字符串中nba的子串个数
思路:用String中的replace方法把 "nab" 都替换成 "&"符号~
然后把字符串变成字符数组,遍历字符数组中的"&"符号个数 就是“nba”的个数
public class text02 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//hanbasdnbafllgnbahjnbakqqqqlnbaxi
String s = "hanbasdnbafllgnbahjnbakqqqqlnbaxi";
s = s.replace("nba", "&");
System.out.println(s);
char[]ch = s.toCharArray();
int count=0;
for(char c:ch){
if(c=='&')
count++;
}
System.out.println(count);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2