Java统计字符串中每个字符出现次数

合集下载

黑马程序员JavaEE基础班知识点整理

黑马程序员JavaEE基础班知识点整理

黑马程序员JavaEE基础班知识点整理天地玄黄,宇宙洪荒。

如果你也和我一样看过不少网络小说,那你的想象力肯定很丰富,这点作为程序员是很重要的。

如果你和我一样喜欢《黑客帝国》《银河系漫游指南》《钢铁侠》《三体》《西部世界》。

那有可能科幻就是你坚持钻研技术的动力来源。

虽然我们暂时不能像黑客帝国里一样进入虚拟世界,不能像邓肯一样到宇宙尽头餐馆吃饭,没有贾维斯的智能管家系统,也不能把机器人做的无法分辨真伪,但是如果没有人们对未来的想象我们的技术就没有了追求。

这些追求促使我们不断的学习,让技术不断的前进,我相信这些电影电视小说里的情节一定会实现。

抱有这样的期待和好奇很多同学来到黑马学习技术,首先接触的就是黑马的基础班。

视频课程,讲义是必须的,但是我们还要有知识的梳理。

今天我们就整理了基础班的一下问答和笔试题供大家交流学习。

希望大家梳理一下自己的基础知识,基础知识是我们技术飞船的主架,主架坚固才能让我们在宇宙里航行的更远~理论知识点一、基础概念1、面向对象的理解并举例2、面向对象的三大特性,并分别阐述对每个特性的理解3、阐述成员变量和局部变量的区别4、构造方法的概念和作用,和一般方法的区别5、静态代码块、构造代码块、构造方法的特点及执行顺序6、描述类和对象的关系7、创建对象的步骤等二、IO流理论知识点:1、io流的基本流都有哪些,简单说说基本流的体系2、字节流和字符流的使用场景3、拷贝文本文件一般会用到哪个流?为什么?4、在io流中拷贝文件一般会用哪几个流?5、在io流的拷贝过程中,通过while 循环读取字节进行拷贝,需要通过哪个流的什么方法读取字节6、File类的常用方法都有哪些?7、遍历指定目录下的文件的所有名称,一般用什么方法?8、在io流中一般常用的字符编码集都有哪些?简单阐述几种9、在字符流中,带缓冲区的包装流都有哪一些?具体阐述一下。

10、为什么read()方法返回值是int类型?11、标准输入流和输出流是什么?三、集合理论知识点1、集合的由来2、数组和集合的使用场景3、数组和集合的区别4、集合的遍历5、在迭代集合中元素时,可不可以通过集合对象的方法操作集合中的元素?6、 List的三个子类的特点7、栈和队列数据结构8、 List有三个儿子,在不同的场景分别应该使用谁呢?9、 HashSet保证元素唯一的原理10、 TreeSet两种排序方式11、 list集合和set集合有什么区别?12、双列集合获取键和值的两种方式13、 HashMap和Hashtable的区别14、 Collection和Collections的区别?四、反射理论知识点1、反射概述2、获取类的字节码文件三种方式五、线程理论知识点1、线程的生命周期。

50道经典java编程题

50道经典java编程题

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

$【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

【程序6】辗转相除法题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

【程序7】?题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程找出1000以内的所有完数。

【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高]【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少【程序12】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数【程序13】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少《【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

在一个字符串中,统计大写字母个数,小写字母个数,其他字符个数的四种算法

在一个字符串中,统计大写字母个数,小写字母个数,其他字符个数的四种算法

在⼀个字符串中,统计⼤写字母个数,⼩写字母个数,其他字符个数的四种算法题⽬描述:编写程序,输出字符串中的⼤写字母、⼩写⼩母和其他的个数。

如有⼀个字符串"Helle, This is A test textfile.123456, tannkyou!!",则其⼤写字母个数:3,⼩写字母个数:29,其他字符个数:18.这⾥提供了四种算法,第⼀种是我们⽐较好理解的,也属于硬编码问题,其他三种⽅法要借助JAVA语⾔的jdk提供的api。

⽅法⼀:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>js分析字符串内容</title><!--实现⼀个函数,输出某字符串⾥有⼏个⼤写字母,⼩写字母,数字,其他符号。

字符串由形参指定 --><script>var str = prompt("请随意输⼊⼤写字母⼩写字母数字及符号等");function analyze(aa){var a = 0;var A = 0;var n = 0;var other = 0;for (var i=0;i<aa.length;i++){var c = aa.substr(i,1); //aa.charAt(i);if (c>='a' && c<='z'){a++;}else if(c>='A' && c<='Z'){A++;}else if(c>='0' && c<='9'){n++;}else{other++;}}document.write("⼩写字母为"+a,"⼤写字母为"+A,"数字为"+n,"其他字符为"+other);}</script></head><body onload="analyze(str)"></body></html>[java]1. //⽅法⼀:在利⽤每个字符的Unicode码在a~z之间,调⽤jdk提2. //供的String类的charAt取出字符串每⼀个字符,逐个进⾏⽐较来判定3.4. class FindLetter {5. public static void main(String[] args) {6. String str = "Helle, This is A test textfile.123456, tannk you!!";7. int upCount = 0;8. int lowCount = 0;9. int otherCount = 0;10.11. for(int i = 0; i < str.length(); i++) {12. char c = str.charAt(i);13. if(c >= 'a' && c <= 'z') {14. lowCount++;15. } else if(c >= 'A' && c <= 'Z') {16. upCount++;17. } else {18. otherCount++;19. }⽅法⼆:[java]1. //⽅法⼆:⽤jdk的Character类的isUpperCase⽅法和isLowerCase⽅法2.3. class FindLetter1 {4. public static void main(String[] args) {5. String str = "Helle, This is A test textfile.123456, tannk you!!";6. int upCount = 0;7. int lowCount = 0;8. int otherCount = 0;9.10. for(int i = 0; i < str.length(); i++) {11. char c = str.charAt(i);12. if(Character.isUpperCase(c)) {13. upCount++;14. } else if(Character.isLowerCase(c)) {15. lowCount++;16. } else {17. otherCount++;18. }19. }20. System.out.println("⼤写字母个数:" + upCount);21. System.out.println("⼩写字母个数:" + lowCount);22. System.out.println("其他字母个数:" + otherCount);23. }24. }⽅法三:[java]1. //⽅法三:先定义两个字符串a到z和A到Z,再逐个取出str字符串中的每个字母,2. //⽤indexOf()⽅法来判断字符是否在这这个定义的字符串中,在⼤写字母这⼀⾏,3. //⼤写字母的计数器就加1,在⼩写字母这⾏,⼩写字母就加⼀,否则其他字母计算器4. //加15.6. class FindLetter2 {7. public static void main(String[] args) {8. String low = "abcdefghijklmnopqrstuvwxyz";9. String up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";10. int lowCount = 0;11. int upCount = 0;12. int otherCount = 0;13. String str = "Helle, This is A test textfile.123456, tannk you!!";14.15. for(int i = 0; i < str.length(); i++) {16. char c = str.charAt(i);17. if(low.indexOf(c) != -1) {18. lowCount++;19. } else if(up.indexOf(c) != -1) {20. upCount++;21. } else {22. otherCount++;23. }⽅法四:[java]1. //把str分别转化为⼤写和⼩写⼤写⽤sU ⼩写 sL2. //然后通过与原串⽐较来统计个数3.4. class FindLetter3 {5. public static void main(String[] args) {6. String str = "Helle, This is A test textfile.123456, tannk you!!";7. String sU = str.toUpperCase();8. String sL = str.toLowerCase();9. int lowCount = 0;10. int upCount = 0;11. int otherCount = 0;12. for(int i = 0; i < str.length(); i++) {13. char charSTR = str.charAt(i);14. char charSU = sU.charAt(i);15. char charSL = sL.charAt(i);16.17. //如果不是字母,是其他字符,则直接⽤otherCount来计数18. if(Character.isLetter(charSTR)) {19. //如果原串与转换过后的⼤写字母串相等,则原来字符为⼤写字母,20. //若与⼩写字母相等,则为⼩写字母21. if( charSTR == charSU) {22. upCount++;23. } else if(charSTR == charSL) {24. lowCount++;25. }26. } else {27. otherCount++;28. }29. }30.31. System.out.println("⼤写字母个数:" + upCount);32. System.out.println("⼩写字母个数:" + lowCount);33. System.out.println("其他字母个数:" + otherCount);34. }35. }这四种算法都有正确的输出:⼤写字母个数:3⼩写字母个数:29其他字母个数:18。

java基础作业1附答案

java基础作业1附答案

java基础作业1附答案1.某(某<1)Y=2某-1(13某-11(某>10)要求输入某值后,输出y值。

packagetudent.某iaoqiao.day01;importjava.util.Scanner;publicclaYi{publictaticvoidmain(String[]arg){}}2.输入一个年份判断year是否是闰年packagetudent.某iaoqiao.day01;importjava.util.Scanner;Sytem.out.println(\请输入一个数\Scannerc=newScanner(Sytem.in);int某=c.ne某tInt();if(某<1){Sytem.out.println(\}if(某>1&某<10){Sytem.out.println(\}if(某>10){Sytem.out.println(\}}}eleSytem.out.println(\不是闰年\3.任意输入a,b,c3个数判断a,b,c大小packagetudent.某iaoqiao.day01;importjava.util.Scanner;publicclaSan{publictaticvoidmain(String[]arg){}4_1输出图形某某某某某某某某某}Sytem.out.println(\请输入三个数(加空格或回车):\Scannerc=newScanner(Sytem.in);int某=c.ne某tInt();inty=c.ne某tInt();intz=c.ne某tInt();if(某>y&某>z){Sytem.out.println(某);}eleif(某<y&z<y){Sytem.out.println(y);}eleif(某<z&y<z){Sytem.out.println(z);}packagetudent.某iaoqiao.day01;publicclaSi_1{publictaticvoidmain(String[]arg){inttemp=3;for (inti=1;i<=temp;i++){for(intj=1;j<=temp-i;j++){Sytem.out.print(\}for(intk=1;k<=2某i-1;k++){Sytem.out.print(\}Sytem.out.print('\\n');}}}4_2输出图形某某某某某某某某某packagetudent.某iaoqiao.day01;publicclaSi_1{publictaticvoidmain(String[]arg){inttemp=3;for (inti=1;i<=temp;i++){for(intj=1;j<=temp-i;j++){Sytem.out.print(\}for(intk=1;k<=2某i-1;k++){Sytem.out.print(\}Sytem.out.print('\\n');}}}4_3输出图形任意输入n当输入n值为1时,输出某当输入n值为2时,输出当输入n值为3时,输出当输入n值为5时,输出某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某.。

java 获得重复字符此数的方法

java 获得重复字符此数的方法

文章标题:探讨Java中获得重复字符数量的方法在Java编程中,有时我们需要统计一个字符串中重复字符的数量,这对于处理文本数据、字符串分析等场景非常有用。

接下来,我将结合实际情景,从简单到复杂,深入探讨Java中获得重复字符数量的方法。

1. 使用HashMap统计重复字符数量在Java中,我们可以利用HashMap来统计重复字符的数量。

我们定义一个HashMap来存储字符和出现次数的映射关系。

遍历字符串,将字符作为key,出现次数作为value存入HashMap中。

遍历HashMap,找出出现次数大于1的字符,并统计其数量。

2. 使用ASCII码表统计重复字符数量另一种方法是利用ASCII码表来统计重复字符的数量。

我们可以创建一个大小为256的整型数组,用来记录每个字符的出现次数。

遍历字符串,将字符转化为对应的ASCII码,然后在数组中对应位置的值加一。

遍历数组,找出出现次数大于1的字符,并统计其数量。

3. 使用Java 8中的Stream API统计重复字符数量Java 8引入的Stream API为我们提供了一种更加简洁、高效的方法来处理集合数据。

我们可以将字符串转化为字符流,利用groupingBy 和counting等方法,轻松实现统计重复字符数量的功能。

这种方法可以通过lambda表达式和函数式编程思想,让代码更加简洁明了。

总结回顾通过以上的讨论,我们可以看出,在Java中获得重复字符数量的方法有多种选择,每种方法都有其适用的场景和特点。

使用HashMap能快速实现统计,使用ASCII码表能节省空间,而Stream API则更加灵活和现代化。

个人观点和理解在实际的开发中,根据具体情况选择合适的方法非常重要。

我个人比较偏向于使用Stream API来实现统计重复字符数量的功能。

它简洁、高效,并且符合现代编程的思想。

当然,对于一些特殊场景,也要根据实际情况综合考虑各种方法的优缺点,选择最适合的方式来解决问题。

Java基础编程题(含答案)

Java基础编程题(含答案)

51道JAVA基础编程练习题1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?2.判断101-200之间有多少个素数,并输出所有素数。

3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

4.将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

5.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

6.输入两个正整数m和n,求其最大公约数和最小公倍数。

7.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

8.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

9.一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程找出1000以内的所有完数。

10.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?11.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?12.企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?13.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?14.输入某年某月某日,判断这一天是这一年的第几天?(变形:输入某一天,输出一千天后是那一天)15.输入三个整数x,y,z,请把这三个数由小到大输出。

输出在一个字符串中,指定字符串出现的次数。

输出在一个字符串中,指定字符串出现的次数。
count++;
}
System.out.println("指定字符串出现的次数:"+count);
}
}
运行结果:
1.编程实现以下结构:
程序如下:
import java.awt.*;
public class TestFrame
{
public static void main(String args[])
{
lCount++;
}else if (mm[i]>='A'&&mm[i]<='Z')
{
uCount++;
}else
{
oCount++;
}
}
结果:
2.编写一个方法,输出在一个字符串中,指定字符串出现的次数。
程序如下:
public class Test2
{
public static void main(String[] args)
{
String s="javagoodwejavajavastudentjavajava";
String sFind="java";
int beginindex=-1;
int count=0;
while((beginindex=s.indexOf(sFind))!=-1)
{
s=s.substring(beginindex+sFind.length());
Panel p=new Panel(null);
p.setBounds(w/4,h/4,w/2,h/2);

Java基础第5章编程题答案

Java基础第5章编程题答案

第五章编程题1.编写一个程序,实现字符串大小写的转换并倒序输出。

要求如下:(1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。

(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。

(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

【参考答案】public class Chap5e {public static void main(String[] args) {String str="Hell5oWorld";char[] ch=str.toCharArray();StringBuffer s=new StringBuffer();for(int i=ch.length-1;i>=0;i--){if(ch[i]>='A'&&ch[i]<='Z')s.append(String.valueOf(ch[i]).toLowerCase());elseif(ch[i]>='a'&&ch[i]<='z')s.append(String.valueOf(ch[i]).toUpperCase());elses.append(String.valueOf(ch[i]));}System.out.print(s.toString());}}2. 利用Random类来产生5个20`30之间的随机整数并输出。

【参考答案】import java.util.Random;public class Chap5e {public static void main(String[] args) {Random r=new Random();for(int i=0;i<5;i++){System.out.println(r.nextInt(30-20+1)+20);}}}3. 编程. 已知字符串:”this is a test of java”.按要求执行以下操作:(1) 统计该字符串中字母s出现的次数(2) 取出子字符串”test”(3) 将本字符串复制到一个字符数组Char[] str中.(4) 将字符串中每个单词的第一个字母变成大写,输出到控制台。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java统计字符串中每个字符出现次数package com.perry.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
*
* @author perry_zhao
* 统计一个字符串中每个字符出现的次数(不忽略大小写)
*/
public class CountStr {
public Map count(String str){
System.out.println("需要统计的字符串:"+str+"准备开始统计每个字符出现的次数...");
Map<String,Integer> map = new HashMap<String,Integer>();
String temp ="";
for(int i=0; i<str.length(); i++){
temp = str.substring(i, i+1);
if(map.size()==0){
//map集合中没数据,将第一个数据加进去
map.put(temp, 1);
}else{
if(map.get(temp)==null){
//map集合中没有,将其加入
map.put(temp, 1);
}else{
//map集合中存在,将其value值加1
int n = map.get(temp);
n+=1;
map.put(temp, n);
}
}
}
return map;
}
public static void main(String[] args) {
Count count = new Count();
Map map = count.countStr("this is test data");
//以下是对Map集合中的数据进行跌倒传统的方法
Set set = map.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
String key = (String)it.next();
int number = (Integer)map.get(key);
System.out.print(key+":"+number+"次;");
}
}
}。

相关文档
最新文档