-
题目如下:
需求说明:定义如下字符串: String str = “javajfiewjavajfiowfjavagkljjava”; 请分别定义方法统计出: 字符串中:字符j的数量 字符串中:字符串java的数量
-
算法思路
1.当知道指定字符串后,通过遍历来字符,来计算指定字符串出现次数;
2.使用字符串相关的indexOf 、 substring 方法进行统计. -
代码如下
1.遍历统计
package com.itheima.kuihuabaodian;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
String str="javajfiewjavajfiowfjavagkljjava";
getjcount(str);
getjavacount(str);
}
public static void getjcount(String s){
int count=0;
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)=='j'){
count++;
}
}
System.out.println("共有"+count+"个 j 字母");
}
public static void getjavacount(String s){
Scanner sc = new Scanner(System.in);
int count=0;
// 将指定字符串拆分成单个字符使用charAt()方法统计
for (int i = 0; i+3 <s.length() ; i++) {
if(s.charAt(i)=='j'){
if (s.charAt(i+1)=='a'){
if (s.charAt(i+2)=='v'){
if (s.charAt(i+3)=='a'){
// 如果后续字符满足则将计数器变量自增
count++;
}
}
}
}
}
System.out.println("共有"+count+"个 java ");
}
}
代码输出:
共有7个 j 字母
共有4个 java
Process finished with exit code 0
2.使用字符串相关的indexOf 、 substring 方法进行统计.
package com.itheima.exercise;
/*
* 需求说明:定义如下字符串:
String str = “javajfiewjavajfiowfjavagkljjava”;
请分别定义方法统计出:
1. 字符串中:字符j的数量
2. 字符串中:字符串java的数量
*/
public class MainApp {
public static void main(String[] args) {
//1.定义字符串
String str = "javajfiewjavajfiowfjavagkljjava";
//2.调用方法,得到字符j的数量
int count = getCount(str, 'j');
int count2 = getCount(str, "java");//得到字符j的数量
//3.打印数量
System.out.println("字符j的数量:" + count);
System.out.println("字符串java的数量:" + count2);
}
/*
* 需求:计算大字符串中包含指定字符、字符串的数量
* 指定方法的名称: getCount
* 指定方法的参数: String str, char ch
* 指定方法的返回值: int
*/
public static int getCount(String str, char ch){
//1.定义一个变量,用来记录查找到ch的次数
int count = 0;
//2.查找str字符串中出现ch字符的次数
int index = 0;
while ((index = str.indexOf(ch)) != -1) {//说明查找到了字符ch出现的位置
count++; //出现的次数累加1
str = str.substring(index + 1);//更新str字符串中的内容
}
return count;
}
/*
* 需求:计算大字符串中包含指定字符、字符串的数量
* 指定方法的名称: getCount
* 指定方法的参数: String str, String ch
* 指定方法的返回值: int
*/
public static int getCount(String str, String ch){
//1.定义一个变量,用来记录查找到ch的次数
int count = 0;
//2.查找str字符串中出现ch字符的次数
int index = 0;
while ((index = str.indexOf(ch)) != -1) {//说明查找到了字符ch出现的位置
count++; //出现的次数累加1
str = str.substring(index + 1);//更新str字符串中的内容
}
return count;
}
}
代码输出:
字符j的数量:7
字符串java的数量:4
Process finished with exit code 0
代码分析: 使用charAt()方法不方便统计字符串在字符串中的出现次数,只能统计固定的代码出现的位置,而使用indexOf 、substring方法来统计可以灵活的实现指定字符串的次数出现统计.
-
indexOf()方法
indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。 -
substring() 方法
substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
public class exer02 {
public static void main(String[] args) {
String s="iloveyouyouloveme";
System.out.println(s.indexOf("you"));
s=s.substring(s.indexOf("you"));
// 这里传入参数为5,可以看到字符串的前5个元素被取出后剩余字符串被重新赋给str
System.out.println(s);
s=s.substring(s.indexOf("you")+1);
// 对将5+1的参数赋值给substring()方法后可以看到第一个元素达到抹除效果
System.out.println(s);
}
}
代码输出:
5
youyouloveme
ouyouloveme
Process finished with exit code 0