首页 > 编程语言 >Java语言程序设计基础篇_编程练习题*18.10 (字符串中某个指定字符出现的次数)

Java语言程序设计基础篇_编程练习题*18.10 (字符串中某个指定字符出现的次数)

时间:2024-09-11 14:52:57浏览次数:13  
标签:练习题 18.10 Java 字符 count times str 字符串 input

目录

题目:*18.10 (字符串中某个指定字符出现的次数)

习题思路

代码示例

 输出结果


题目:*18.10 (字符串中某个指定字符出现的次数)

    编写一个递归方法,使用下面的方法头给出一个指定字符在字符串中出现的次数。

public static int count(String str,char a)

  例如,count(“Welcome”, ‘e’)会返回 2。编写一个测试程序,提示用户输入一个字符串和一个字符,显示该字符在字符串中出现的次数。

  • 习题思路
  1. 新建int私有变量用于计数
  2. count方法思路
    1. 如果str的长度等于1,那么检查其中的字符是否和a相同。如果相等则将计数变量+1,返回计数变量。
    2. 不等于1则检查str最后一个字符是否与a相同,如果相等则将计数变量+1,将str最后一个字符删除再调用count方法,返回计数变量。
  3. 编写main方法,让用户一个字符串和一个字符,输出调用count方法。
  • 代码示例

编程练习题18_10CharacterCount.java

package chapter_18;

import java.util.Scanner;

public class 编程练习题18_10CharacterCount {
	private static int times = 0;
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("Enter a string and a character: ");
		String str = input.next();
		char ch = input.next().charAt(0);
		System.out.println(count(str, ch));
		input.close();
	}
	public static int count(String str,char a) {
		if(str.length() == 1) {
			if(str.charAt(0)==a)
				times++;
			return times;
		}else {
			if(str.charAt(str.length()-1)== a) {
				times++;
			}
			count(str.substring(0,str.length()-1), a);
			return times;
		}
	}

}
  •  输出结果
Enter a string and a character: Welcome e
2

标签:练习题,18.10,Java,字符,count,times,str,字符串,input
From: https://blog.csdn.net/2301_78998594/article/details/142082248

相关文章

  • Java小白一文讲清Java中集合相关的知识点(八)
    HashMap底层机制及源码剖析HashMap底层维护了Node类型的数组table,默认为null当创建对象时,将加载因子初始化为0.75;当添加key-value时,通过key的哈希值得到在table的索引,然后判断该索引处是否有元素,如果没有元素直接添加,如果该索引处有元素,继续判断该元素的key是否和......
  • Java中的线程优先级与调度:如何有效管理线程的执行顺序
    Java中的线程优先级与调度:如何有效管理线程的执行顺序大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,线程的优先级和调度策略对于高效管理线程执行顺序至关重要。通过合理地设置线程优先级和调度策略,可以有效地优化应用的性能和响应时间。本......
  • 如何在Java服务中使用Circuit Breaker模式:Hystrix与Resilience4j的比较
    如何在Java服务中使用CircuitBreaker模式:Hystrix与Resilience4j的比较大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,服务调用的稳定性和可靠性至关重要。CircuitBreaker(熔断器)模式可以有效地防止服务故障的蔓延,保护系统的稳定性。本......
  • Java服务端中的数据验证:使用Bean Validation与Spring Validator的最佳实践
    Java服务端中的数据验证:使用BeanValidation与SpringValidator的最佳实践大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java服务端开发中,数据验证是确保应用数据准确性和可靠性的关键步骤。本文将探讨BeanValidation和SpringValidator这两种数......
  • Java的class与String互相转换,自定义密码策略
    目的客户要求密码校验方式,用自己的认证方式。提供一种方案,在不出补丁的情况下,解决这个问题。原理1、本地写一个类,用客户想要的方案,实现密码校验的接口,编译成class类。2、然后把这个class类,先转换成二进制,再转换成16进制的字符串。3、将字符串写到客户的数据库里。4、重启服务,在......
  • Java中的缓存穿透与雪崩问题:解决方案与设计模式
    Java中的缓存穿透与雪崩问题:解决方案与设计模式大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,缓存是提高性能的重要手段。然而,缓存系统在实际应用中常常会遇到缓存穿透和缓存雪崩这两种问题。本文将探讨这两种问题的成因以及在Java中......
  • Java中的负载测试:从单元测试到集成测试的完整覆盖策略
    Java中的负载测试:从单元测试到集成测试的完整覆盖策略大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊一聊Java中的负载测试。负载测试是保证系统性能和稳定性的重要手段,而完整的测试策略不仅包括单元测试,还要覆盖到集成测试。本文将从单......
  • 如何在Java中实现应用的动态扩展:基于热插拔与插件机制的实现
    如何在Java中实现应用的动态扩展:基于热插拔与插件机制的实现大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代应用开发中,为了应对不断变化的需求和快速迭代的要求,应用的动态扩展能力变得尤为重要。实现动态扩展的关键技术包括热插拔和插件机制。......
  • Java服务端开发中的请求优化:从HTTP/1.1到HTTP/2与gRPC的升级
    Java服务端开发中的请求优化:从HTTP/1.1到HTTP/2与gRPC的升级大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代Java服务端开发中,提升请求性能是至关重要的。随着HTTP/2和gRPC的引入,优化请求性能变得更加有针对性和高效。本文将探讨如何从HTTP/1.1......
  • Java中的元编程:使用反射与代理模式实现代码的动态增强
    Java中的元编程:使用反射与代理模式实现代码的动态增强大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,元编程是指在程序运行时对程序进行修改和扩展的技术。反射和代理模式是实现Java元编程的两种常用技术。本文将探讨如何使用反射与代理......