一、应用要求

  输入一个字符串,再输入要查找的字符,判断该字符在该字符串中出现的次数。

二、实现思路

  1.使用substring()方法将字符串的每个字符存入数组

  2.比较数组每个字符是否与指定的字符相等,并计数

三、编写代码

  错误案例:

 import java.util.Scanner;

 public class StringDemo {

     public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一句话:");
String string = input.next();
System.out.println("请输入查找的字符串:");
String s = input.next(); //2.正序
/*int num = 0;
int temp = 0;
while(string.indexOf(s)>-1){
int index = string.indexOf(s);
num=num+index+temp;
System.out.print(num+"\t");
string = string.substring(index+1);
temp++;
}*/
/*while(string.indexOf(s)>-1){
if (temp == 0) {
System.out.println(string.indexOf(s));
num = string.indexOf(s);
string = string.substring(string.indexOf(s)+1);
temp++;
} else {
int indexs = string.indexOf(s);
string = string.substring(indexs+1);
num=num+indexs+1;
System.out.print(num+"\t");
} }*/
/*从后往前找,遇到重复字符会出错
*
//1.查找第一个下标
int index = string.indexOf(s);
//声明一个集合保存获取的下标
List<Integer> list = new ArrayList<Integer>();
while(string.length()>=index){
//2.查找最后一个
int indexEnd = string.lastIndexOf(s);
if (indexEnd<0) {
break;
}
list.add(indexEnd);//保存到list
//System.out.print(indexEnd+"\t");
string = string.substring(0, indexEnd);
}
//遍历list
System.out.println();
for (int i = list.size()-1; i >= 0; i--) {
System.out.print(list.get(i)+"\t");
}
*/
//查找字符打印位置下标:正序查找才是王道
for (int i = 0; i <= string.lastIndexOf(s); i++) {
if (s.equals(string.substring(i, i+s.length()))) {
System.out.println(i);
i = i+s.length()-1;
}
}
input.close(); } }

  最终代码:

 import java.util.Scanner;
/**
* 查找字符串
* @author Administrator
*
*/
public class String01 { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一句话:");
String string = input.next();
System.out.print("请输入查找的字符串:");
String s = input.next();
//查找字符打印位置下标
int count = 0;//记录字符出现的次数
for (int i = 0; i <= string.lastIndexOf(s); i++) {
if (s.equals(string.substring(i, i+s.length()))) {
System.out.print(i+"\t");
i = i+s.length()-1;
count++;
}
}
System.out.println(s+"共出现"+count+"次!");
input.close(); } }

【实用类String】String类方法的应用案例:查找判断指定字符出现的次数和位置的更多相关文章

  1. java 基础 - 查找某个字串出现的次数及位置

    查找某个字串出现的次数及位置 public class search { public static void main(String[] args){ String str = "abc1 ...

  2. SQL Server 查找字符串中指定字符出现的次数

    要查找某个指定的字符在字符串中出现的位置,方法比较简单,使用 len() 函数和 replace() 函数结合就可以. SELECT TOP 200 approveInfo approveInfo2, ...

  3. Day_09【常用API】扩展案例3_删除源字符串中的指定字符,并计算指定字符出现的次数

    分析以下需求,并用代码实现 1.键盘录入一个源字符串由字符串变量scrStr接收 2.键盘录入一个要删除的字符串由字符串变量delStr接收 3.要求 删除该字scrStr符串中的所有delStr字符 ...

  4. 使用grep查找文件中指定字符出现的次数

    grep -o ‘好' 文件名.txt | wc -l -o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出.这样只要统计输出的行数就可以知道这个字符出现的次数了.

  5. Java基础知识强化之集合框架笔记56:Map集合之HashMap集合(HashMap<String,Student>)的案例

    1. HashMap集合(HashMap<String,Student>)的案例 HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap的 ...

  6. 用 string 进行插入、替代、查找输出下标等操作

    string s; s = "; string::iterator it; it = s.begin();//让s指向第一个元素 cout << s; system(" ...

  7. C#基础总结之五Dictionary<string, string[]>和while循环

    #region 第五天作业 名片集(01) //Dictionary<string, string[]> PersonCard = new Dictionary<string, st ...

  8. Babelfish (关于map<string,string>的用法

    题目链接:https://vjudge.net/contest/237395#problem/A 学习博客:https://blog.csdn.net/lyy289065406/article/det ...

  9. String类(获取,转换,判断,比较)

    1 package cn.itcast.p1.string.demo; 2 3 import java.util.Iterator; 4 5 import com.sun.org.apache.xpa ...

随机推荐

  1. javascript 数组排序

    var arr=[1,2,3,5,10,4,2,19,2,0]; alert(arr);//[1,2,3,5,10,4,2,19,2,0] arr.sort(function (a, b) {//升序 ...

  2. kali linux之手动漏洞挖掘二

    漏洞挖掘原则/宗旨----所有变量,所有头(cookie中的变量),逐个变量删除 身份认证 常用若口令/基于字典的密码爆破/锁定帐号 信息收集(手机号,身份证,住址信息等等) 密码嗅探 会话sessi ...

  3. 【转】WinForm时间选择控件(DateTimePicker)如何选择(显示)时分秒

    源地址:https://www.cnblogs.com/EvanFan/p/7826160.html 注意:年月日时分秒的大小写格式,如果错了数据就错了,如果能显示当前时间说明设置正确

  4. 特殊用途语言特性(默认实参/内联函数/constexpr函数/assert预处理宏/NDEBUG预处理变量)

    默认实参: 某些函数有这样一种形参,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参.调用含有默认实参的函数时,可以包含该实参,也可以省略该实参. 需要特别 ...

  5. P3230 [HNOI2013]比赛

    $ \color{#0066ff}{ 题目描述 }$ 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. ...

  6. 【离散数学】SDUT OJ 指定长度路径数

    指定长度路径数 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 题目给出一个有n个节点 ...

  7. docker加速器配置

    我使用docker的原因 最近自己一直在强迫自己使用docker,一方面是docker的容器化服务,使得每一个配置相互独立,易于维护.而且如果到后面如果深入了的话,通过自己编写dockerfile,那 ...

  8. 使用navicat将mysql转换成sqlserver

    使用navicat将mysql转换成sqlserver 1. 打开navicat,连接所需要装换的mysql数据库. 2. 选择所需要转换的数据源,点击右键选择数据传输.如图: 3. 打开数据传输面板 ...

  9. Permutation(构造+思维)

    A permutation p is an ordered group of numbers p1,   p2,   ...,   pn, consisting of ndistinct positi ...

  10. 关于es6 import export的学习随笔

    记得之前的一次面试中,有个面试官问了我关于es6导入和导出的一些知识点,可惜当时对这方面没在意,只知道每次机械的import和export,也不知道为啥要这样用,现在静下心来,好好的把这块看了下,顺便 ...