当前位置: 首页 > news >正文

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

一、应用要求

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

二、实现思路

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

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

三、编写代码

  错误案例:

 1 import java.util.Scanner;
 2 
 3 public class StringDemo {
 4 
 5     public static void main(String[] args) {
 6         Scanner input = new Scanner(System.in);
 7         System.out.println("请输入一句话:");
 8         String string = input.next();
 9         System.out.println("请输入查找的字符串:");
10         String s = input.next();
11         
12         
13         //2.正序
14         /*int num = 0;
15         int temp = 0;
16         while(string.indexOf(s)>-1){
17             int index = string.indexOf(s);
18             num=num+index+temp;
19             System.out.print(num+"\t");
20             string = string.substring(index+1);
21             temp++;
22         }*/
23         /*while(string.indexOf(s)>-1){
24             if (temp == 0) {
25                 System.out.println(string.indexOf(s));
26                 num = string.indexOf(s);
27                 string = string.substring(string.indexOf(s)+1);
28                 temp++;
29             } else {
30                 int indexs = string.indexOf(s);
31                 string = string.substring(indexs+1);
32                 num=num+indexs+1;
33                 System.out.print(num+"\t");
34             }
35             
36         }*/
37         /*从后往前找,遇到重复字符会出错
38          * 
39         //1.查找第一个下标
40         int index = string.indexOf(s);
41         //声明一个集合保存获取的下标
42         List<Integer> list = new ArrayList<Integer>();
43         while(string.length()>=index){
44             //2.查找最后一个
45             int indexEnd = string.lastIndexOf(s);
46             if (indexEnd<0) {
47                 break;
48             }
49             list.add(indexEnd);//保存到list
50             //System.out.print(indexEnd+"\t");
51             string = string.substring(0, indexEnd);
52         }
53         //遍历list
54         System.out.println();
55         for (int i = list.size()-1; i >= 0; i--) {
56             System.out.print(list.get(i)+"\t");
57         }
58         */
59         //查找字符打印位置下标:正序查找才是王道
60         for (int i = 0; i <= string.lastIndexOf(s); i++) {
61             if (s.equals(string.substring(i, i+s.length()))) {
62                 System.out.println(i);
63                 i = i+s.length()-1;
64             }
65         }
66         input.close();
67 
68     }
69 
70 }

  最终代码:

 1 import java.util.Scanner;
 2 /**
 3  * 查找字符串
 4  * @author Administrator
 5  *
 6  */
 7 public class String01 {
 8 
 9     public static void main(String[] args) {
10         Scanner input = new Scanner(System.in);
11         System.out.println("请输入一句话:");
12         String string = input.next();
13         System.out.print("请输入查找的字符串:");
14         String s = input.next();
15         //查找字符打印位置下标
16         int count = 0;//记录字符出现的次数
17         for (int i = 0; i <= string.lastIndexOf(s); i++) {
18             if (s.equals(string.substring(i, i+s.length()))) {
19                 System.out.print(i+"\t");
20                 i = i+s.length()-1;
21                 count++;
22             }
23         }
24         System.out.println(s+"共出现"+count+"次!");
25         input.close();
26 
27     }
28 
29 }

转载于:https://www.cnblogs.com/tengqiuyu/p/6916306.html

相关文章:

  • Http压测工具wrk使用指南
  • Tomcat PK Resin
  • CHAP认证过程
  • Html5新标签解释及用法
  • Linux系统中如何校验SHA1和MD5?
  • iOS多线程GCD详解
  • easyui解析树形
  • 使用Shiro
  • 微信小程序开发之模板消息
  • python 回溯法 子集树模板 系列 —— 12、选排问题
  • 快速部署rabbitMQ教程
  • foobar2000播放dff格式音乐的解决办法
  • Bzoj1228 [SDOI2009]ED
  • NIO2.0之copy、delete和move
  • zendstudio的安装和破解
  • Angularjs之国际化
  • ES6 学习笔记(一)let,const和解构赋值
  • go语言学习初探(一)
  • JS+CSS实现数字滚动
  • Python打包系统简单入门
  • Python利用正则抓取网页内容保存到本地
  • SSH 免密登录
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue ES6 Jade Scss Webpack Gulp
  • 初识 beanstalkd
  • 前端面试总结(at, md)
  • 如何优雅地使用 Sublime Text
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Linux·i2c驱动架构​
  • $refs 、$nextTic、动态组件、name的使用
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)(1.13) SiK无线电高级配置(六)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (力扣题库)跳跃游戏II(c++)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • **python多态
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core 项目指定SDK版本
  • .NET 服务 ServiceController
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • /bin/bash^M: bad interpreter: No such file or directory
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [CentOs7]iptables防火墙安装与设置
  • [FZSZOJ 1223] 上海红茶馆
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [HDOJ4911]Inversion
  • [Jquery] 实现鼠标移到某个对象,在旁边显示层。
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)
  • [Python]list.append字典的时候,修改字典会导致list内容变化的问题
  • [Python]闭包
  • [Python人工智能] 四十.命名实体识别 (1)基于BiLSTM-CRF的威胁情报实体识别万字详解
  • [pytorch] 2. tensorboard