java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)

合集下载

实验报告:统计字符串中子字符串出现的次数

实验报告:统计字符串中子字符串出现的次数

实验报告:统计字符串中⼦字符串出现的次数实验报告源程序:1 #include<iostream>2 #include<cstring>3using namespace std;4int cntstring(char *source,char *substr);5void main()6 {7char str1[50],str2[20]; //str1 为主字符串,str2 为⼦字符串8 cout<<"input source string:";9 cin.getline(str1,50);10 cout<<"input sub string:";11 cin.getline(str2,20);12 cout<<"Occurs:"<<cntstring(str1,str2)<<endl;13 }14int cntstring(char *source,char *substr)15 {16int sum=0; //统计⼦字符串数量初值为017char *p1=source,*p2=substr;18while(*p1 !='\0') //主字符串没有结束19 {20if(*p1 == *p2) //第⼀个字符相同21 {22while(*p1 == *p2 && *p2 !='\0') //循环⽐较后续字符23 {24 p1++;p2++; //⼦字符串没有结束,两字符串同事后移⼀个字符25 }2627 }28else29 {30 p1++; //主字符串后移,重新⽐较31 }3233if(*p2 == '\0')34 sum++;35 p2=substr; //字字符串出现⼀次,指针重新指向⼦字符串36 }3738return sum; //返回统计结果39 }提⽰:主函数使⽤cin.getline读⼊主字符串和⼦字符串。

java怎么实现统计一个字符串中字符出现的次数

java怎么实现统计一个字符串中字符出现的次数

java怎么实现统计⼀个字符串中字符出现的次数问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计⼀个字符串中字符出现的次数?⽽且,如果压缩后的字符数不⼩于原始字符数,则返回。

处理逻辑:⾸先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存⼊Map中。

源码如下:1import java.util.HashMap;2import java.util.Iterator;3import java.util.Map;45public class TestCompress {67public static void main(String[] args) {8 String str = "aaabbbcccdfb";9 compress(str);10 }1112public static void compress(String str) {13 Map<String, Integer> count = new HashMap<String, Integer>();14 String[] myStrs = str.split("");15for (int i = 0; i < myStrs.length; i++) {16int totalNum = 1;17 String currentStr = myStrs[i];18if (count.containsKey(currentStr)) {19 totalNum = count.get(currentStr) + 1;20 }21 count.put(currentStr, totalNum);22 }23int num = count.size();24 System.out.println("压缩结果");25if (num == myStrs.length) {26 System.out.println("各个字母都不⼀样,直接返回");27 System.out.println(str);28return;29 }30 String result = "";31 Iterator<Map.Entry<String, Integer>> it = count.entrySet().iterator();32while (it.hasNext()) {33 Map.Entry<String, Integer> entry = it.next();34 result = result + entry.getKey() + entry.getValue();35 }36 System.out.println(result);37 }38 }运⾏结果:1压缩结果2 a3b4c3d1f1。

java获取指定字符串出现次数的方法

java获取指定字符串出现次数的方法

java获取指定字符串出现次数的方法你可以使用Java的字符串处理方法来获取指定字符串出现的次数。

一种比较简单的方法是使用String类的split(方法和length(方法来实现。

首先,你可以使用split(方法将原始字符串按照指定的字符串分割成一个字符串数组。

然后,你可以使用length(方法来获取该数组的长度,即为该指定字符串在原始字符串中出现的次数。

```javapublic class Mainpublic static void main(String[] args)String str = "Java is a programming language. Java is widely used in the software industry.";String target = "Java";// 使用split(方法将原始字符串按照指定字符串分割成一个字符串数组String[] parts = str.split(target);// 使用length(方法获取指定字符串出现的次数int count = parts.length - 1;System.out.println("字符串\"" + target + "\"在原始字符串中出现的次数为:" + count);}```输出结果为:```字符串"Java"在原始字符串中出现的次数为:2``````javaimport java.util.regex.Matcher;import java.util.regex.Pattern;public class Mainpublic static void main(String[] args)String str = "Java is a programming language. Java is widely used in the software industry.";String target = "Java";// 使用Matcher类的find(方法在原始字符串中寻找匹配的子串,并使用group(方法获取匹配的子串Matcher matcher = pattern.matcher(str);//使用循环统计匹配的次数int count = 0;while (matcher.find()count++;}System.out.println("字符串\"" + target + "\"在原始字符串中出现的次数为:" + count);}```输出结果与之前的方法相同:```字符串"Java"在原始字符串中出现的次数为:2。

JavaScript判断字符串中出现次数最多的字符,并统计其次数

JavaScript判断字符串中出现次数最多的字符,并统计其次数

JavaScript判断字符串中出现次数最多的字符,并统计其次数要求:输出⼀个给定字符串abdgdbcaethbganmugthaesqszaphfdvwd中出现次数最多的字符,并统计其次数。

实现思路:1. 利⽤charA()遍历这个字符串2. 把每个字符都存储给对象,如果对象没有该属性,就先幅值为1,如果存在了就+13. 遍历对象,得到最⼤值和该字符4. 在遍历的过程中,把字符串中的每个字符作为对象的属性存储在对象中,对应的属性值是该字符出现的次数代码实现:// 1.统计次数var str = 'abdgdbcaethbganmugthaesqszaphfdvwd';var obj = {};// 创建了⼀个空的对象,存储字符串中的每个字符。

属性:每个字符,属性值:该字符出现的次数for (var i = 0; i < str.length; i++) {// 遍历字符串var chars = str.charAt(i);// chars代表字符串的每⼀个字符if (obj[chars]) {obj[chars]++;} else {obj[chars] = 1;}// obj[chars]属性值:该字符出现的次数// 如果已经存在,那么次数+1;否则赋值为1}console.log(obj);// 输出对象obj,显⽰每个字符出现的次数// 2.遍历对象,找出最⼤的次数var max = 0;var ch = '';for (var k in obj) {if (obj[k] > max) {max = obj[k];ch = k;}}// k代表属性:每个字符// obj[k]代表属性值:该字符出现的次数// 将次数最多的字符赋值到chconsole.log('最多的字符是' + ch + ',次数为' + max);输出结果:{a: 5, b: 3, d: 4, g: 3, c: 1, …}最多的字符是a,次数为5。

统计字符串中字母出现的次数,字典形式输出(python)

统计字符串中字母出现的次数,字典形式输出(python)

统计字符串中字母出现的次数,字典形式输出(python)a = "aAsmr3idd4bgs7Dlsf9eAF"请将a字符串的数字取出,并输出成⼀个新的字符串。

请统计a字符串出现的每个字母的出现次数(忽略⼤⼩写,a与A是同⼀个字母),并输出成⼀个字典。

例 {'a':3,'b':1}请去除a字符串多次出现的字母,仅留最先出现的⼀个,⼤⼩写不敏感。

例 'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e' a = "aAsmr3idd4bgs7Dlsf9eAF"def fun1_2(x): #1&2x = x.lower() #⼤⼩写转换num = []dic = {}for i in x:if i.isdigit(): #判断如果为数字,请将a字符串的数字取出,并输出⼀个新的字符串num.append(i)else: #2 请统计a字符串出现每个字母的出现次数(忽视⼤⼩写),并输出⼀个字典。

例:{'a':3,'b':1}if i in dic:continueelse:dic[i] = x.count(i)new = ''.join(num)print"the new numbers string is: " + newprint"the dictionary is: %s" % dicfun1_2(a)def fun3(x):x = x.lower()new3 = []for i in x:if i in new3:continueelse:new3.append(i)print''.join(new3)fun3(a)Console:the new numbers string is: 3479the dictionary is: {'a': 3, 'b': 1, 'e': 1, 'd': 3, 'g': 1, 'f': 2, 'i': 1, 'm': 1, 'l': 1, 's': 3, 'r': 1}asmr3id4bg7lf9e。

Java实现统计字符串出现的次数

Java实现统计字符串出现的次数

Java实现统计字符串出现的次数本⽂实例为⼤家分享了Java实现统计字符串出现次数的具体代码,供⼤家参考,具体内容如下需求:健盘录⼊⼀个字符串,要求统计字符串中每个字符串出现的次数。

举例:键盘录⼊"aababcabcdabcde"在控制台输出: "a(1)b(4)c(3)d(2)e(1)"思路:①健盘录⼊⼀个字符串②创建HashMap集合,键是Character, 值是Integer③遍历字符申,得到每⼀个字符④拿得到的每⼀个字符作为键到HashMap集合中去找对应的值,看其返回值如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对成的值⑤遍历HashMap集合,得到键和值,按照要求进⾏拼接⑥输出结果public class StrCount {public static void main(String[] args) {//健盘录⼊⼀个字符串Scanner sc = new Scanner(System.in);System.out.println("清输⼊⼀串字符串:");String line = sc.nextLine();//创建HashMap集合,键是Character, 值是IntegerHashMap<Character, Integer> map = new HashMap<>();//遍历字符申,得到每⼀个字符for (int i = 0; i < line.length(); i++) {char key = line.charAt(i);//拿得到的每⼀个字符作为键到HashMap集合中去找对应的值,看其返回值Integer value = map.get(key);if (value == null) {//如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储map.put(key, 1);} else {//如果返回值不是ull:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对成的值value++;map.put(key, value);}}//遍历HashMap集合,得到键和值,按照要求进⾏拼接StringBuilder sb = new StringBuilder();Set<Character> keySet = map.keySet();for (Character key : keySet) {Integer value = map.get(key);sb.append(key).append("(").append(value).append(")");}//输出结果String result = sb.toString();System.out.println(result);}}最后那个遍历输出是跟着⽼师写的,只不过没贴我写的下⾯这个是因为我觉得⽼师的那个更符合题意,使⽤的是拼接,结果都⼀样。

java8统计字符串字母个数的几种方法总结(推荐)

java8统计字符串字母个数的⼏种⽅法总结(推荐)1.统计字符串字母个数(并且保持字母顺序)⽐如: aabbbbbbbba喔喔bcab cdabc deaaa⽬前我做知道的有5种⽅式噢,如果你还有更好的,欢迎赐教//⽅式1public static void letterCount1(String s) {s=s.replaceAll(" +", "");//1,转换成字符数组char c[]=s.toCharArray();Map<Character, Integer> tree=new TreeMap<Character, Integer>();for (int i = 0; i < c.length; i++) {//第⼀次:a,1//第⼆次:a,2//2,获取键所对应的值Integer value=tree.get(c[i]);// 反编译:Integer value = (Integer)tree.get(Character.valueOf(c[i]));//3,存储判断tree.put(c[i], value==null? 1:value+1);}//如果要求结果格式:a(5)b(4)c(3)d(2)e(1)StringBuilder sbu=new StringBuilder();for(Character key:tree.keySet()){Integer count=tree.get(key);sbu.append(key).append("(").append(count).append(")");}//将sbu转换为字符串System.out.println(sbu.toString());}//⽅式2 使⽤流//这个在测试特殊字符,⽐如\ \n时,他的顺序会不对,这个是Map造成的//解决办法使⽤TreeMappublic static void letterCount2(String s) {s=s.replaceAll(" +", "");TreeMap<String, Long> result = Arrays.stream(s.split("")).sorted()// .collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));.collect(Collectors.groupingBy(Function.identity(),TreeMap::new,Collectors.counting()));System.out.println(result);}//⽅式3 使⽤Collections.frequency//其实就是字符串变成集合存每个字串,把每个字串循环跟集合⽐较public static void letterCount3(String s) {s=s.replaceAll(" +", "");List<String> list=Arrays.asList(s.split(""));Map<String,Integer> map=new TreeMap<String, Integer>();for (String str : list) {map.put(str, Collections.frequency(list, str));}System.out.println(map);}//⽅式4public static void letterCount4(String s) {s=s.replaceAll(" +", "");String[] strs = s.split("");Map<String,Integer> map=new TreeMap<String, Integer>();for (String str : strs) {map.put(str, stringCount(s, str));}System.out.println(map);}//⽅式5public static void letterCount5(String s) {s=s.replaceAll(" +", "");String[] strs = s.split("");Map<String,Integer> map=new TreeMap<String, Integer>();for (String str : strs) {map.put(str, stringCount2(s, str));}System.out.println(map);}//巧⽤splitpublic static int stringCount(String maxstr, String substr) {// 注意// 1.⽐如qqqq,没有找到,则直接返回这个字符串// 2.⽐如qqqjava,末尾没有其他字符,这时也不会分割,所以可以添加⼀个空格// 3.java11开头没有字符,没有关系,⾃动空填充// 4.对于特殊字符,要注意使⽤转义符int count = (maxstr + " ").split(substr).length - 1;// System.out.println("\"" + minstr + "\"" + "字符串出现次数:" + count);return count;}//如果要不区分⼤⼩写,则compile(minstr,CASE_INSENSITIVE)public static int stringCount2(String maxstr, String substr) {int count = 0;Matcher m = pile(substr).matcher(maxstr);while (m.find()) {count++;}return count;}2.统计字符串的单词个数(只限英⽂)这个其实跟上⾯⼀样的,下⾯只写⼀个简洁的⽅法public static void wordStringCount(String s) {//这⾥开始是字符串,分割后变成字符串流Map<String, Long> result = Arrays.stream(s.split("\\s+")).map(word -> word.replaceAll("[^a-zA-Z]", "")).collect(Collectors.groupingBy(Function.identity(),Collectors.counting())); System.out.println(result);}3.统计⽂本单词个数(只限英⽂)//统计⼀个⽂本中单词的个数public static void wordFileCount(String path) throws IOException{//这⾥⼀开始字符串流//先分割//在变成字符流//在筛选Map<String, Long> result = Files.lines(Paths.get(path),Charset.defaultCharset()).parallel()//字符串流--分割--字符串流.flatMap(str->Arrays.stream(str.split(" +"))).map(word -> word.replaceAll("[^a-zA-Z]", ""))//去掉空.filter(word->word.length()>0).collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));System.out.println(result);}4.其他不相⼲的我们知道,可变参数列表,可以不传参数的对于public void testName() {System.out.println("a");}public void testName(String ... s) {//不传参数,s会默认初始化⼀个对象System.out.println("b");}此时调⽤testName() 打印什么呢?,会打印a,会⾃动匹配参数真正为空的⽅法以上这篇java8 统计字符串字母个数的⼏种⽅法总结(推荐)就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

统计字母出现频率 java

第二问://letter.javapackage letter;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;public class Letter{public static void main(String[] args) throws Exception {double s= 0.0 ;double f ;File fileObject = new File("c:/letter.txt");FileInputStream aa=new FileInputStream(fileObject);DataInputStream hc=new DataInputStream(aa);int[] a={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};String[]b={"a/A","b/B","c/C","d/D","e/E","f/F","g/G","h/H","i/I","j/J","k/K","l/L","m/M","n/N","o/O","p/ P","q/Q","r/R","s/S","t/T","u/U","v/V","w/W","x/X","y/Y","z/Z"};byte z;try{while(true){switch(z=hc.readByte()){case 65:case 97: a[0]++;break;case 66:case 98: a[1]++;break;case 67:case 99: a[2]++;break;case 68:case 100: a[3]++;break;case 69:case 101: a[4]++;break;case 70:case 102: a[5]++;break;case 71:case 103: a[6]++;break;case 72:case 104: a[7]++;break;case 73:case 105: a[8]++;break;case 74:case 106: a[9]++;break;case 75:case 107: a[10]++;break;case 76:case 108: a[11]++;break;case 77:case 109: a[12]++;break;case 78:case 110: a[13]++;break;case 79:case 111: a[14]++;break;case 80:case 112: a[15]++;break;case 81:case 113: a[16]++;break;case 82:case 114: a[17]++;break;case 83:case 115: a[18]++;break;case 84:case 116: a[19]++;break;case 85:case 117: a[20]++;break;case 86:case 118: a[21]++;break;case 87:case 119: a[22]++;break;case 88:case 120: a[23]++;break;case 89:case 121: a[24]++;break;case 90:case 122: a[25]++;break;default:System.out.print("出错啦~");break;}}}catch(Exception ee){for(int i=0;i<a.length;i++)s=s+a[i];System.out.println("这个文档中总共有"+(int)s+"个字母。

统计一个字符串中,每个字符出现的次数

{
System.out.println("===" + me.getKey() + "=" + me.getValue());
}
}
/**
*统计一个字符串中,每个字符出现的次数
* <功能详细描述>
* @param str:被统计的字符串
* @return记录了每个字符及对应该字符出现的次数
* @see [类、类#方法、类#成员]
Map<Character, Integer> map = countChar(str);
//遍历
//1-
Set<Character> set = map.keySet();
for(Character key : set)
{
System.out.println(key + "=" + map.get(key));
for(int i = 0; i < str.length(); i++)
{
//取得字符串中每个字符
Character ch = str.charAt(i);
//在tm对象中,判断该字符是否存在
//如果存在,则取得该key对应的value值,将value值加1,再存入该集合对象
//如果不存在,则将该字符及1,存入到tm中
package com.haotj.demo13;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class Test
{

Java实现统计某字符串在另一个字符串中出现的次数——split分隔字符

Java实现统计某字符串在另⼀个字符串中出现的次数——split分隔字符1.给固定的⼀个字符串,并实现。

package cn.redcore.test;import java.util.HashMap;import java.util.Map;import java.util.Set;public class CountStr {public static void main(String[] args) {String str = "asdfajlksdfjaslgkdfdfsdfg";Map<String, Integer> map = new HashMap<String, Integer>();String[] split = str.split("");for(int i=0; i<split.length; i++){if(!"".equals(split[i]) && map.containsKey(split[i])){ //如果map当前中包含该单词,那么取得该词当次数值 + 1map.put(split[i], map.get(split[i]) + 1);}else if(!"".equals(split[i])){ //如果map当前中不包含该单词,那么将该单词加⼊到map集合中,该单词作为key,值设为1map.put(split[i], 1);}}Set<String> keySet = map.keySet();for(String string : keySet){System.out.println(string + "出现的次数:" + map.get(string));}}}2.给固定的⼀个字符串,封装⼀个⽅法。

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

java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/
统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
选中TreeMap的原因是:key不重复且按顺序排序取出
思路:
1.将字符串abacbacdadbc转换成字符数组
2.分别取字符,与TreeMap中的key进行比较
2.1 如果TreeMap中存在对应的字符,则取出并自增,再存入TreeMap
2.2 如果TreeMap中不存在对应的字符,则直接存入该字符,value=1
*/
public class A3B1C2_TreeMapTest {
public static void main(String[] args) {
TreeMap<String, Integer> tm=new TreeMap<>();
String string="abacbacdadbc";
char[] ch=string.toCharArray();
for(char r :ch){
//tm.put(String.valueOf(r), 1);
//System.out.println(r);
if(compareKey(r, tm))
{
int i=tm.get(String.valueOf(r));
i++;
tm.put(String.valueOf(r), i);
}else {
tm.put(String.valueOf(r), 1);
}
}
System.out.println(tm);
Set<Map.Entry<String, Integer>> entrySet=tm.entrySet();
Iterator<Map.Entry<String, Integer>> iterator=entrySet.iterato r();
while(iterator.hasNext()){
Map.Entry<String, Integer> me=iterator.next();
String key=me.getKey();
int value=me.getValue();
System.out.print(key+"("+value+")");
}
}
public static boolean compareKey(char c,TreeMap<String, Intege r> treeMap){
if (treeMap.containsKey(String.valueOf(c))) {
return true;
}
return false;
}
}</pre>。

相关文档
最新文档