java中 如何统计一段字符串中相同字符的个数

比如说在框里输入AABBCC点确定算出:a=2b=2c=2本人是java新人希望提供一些容易理解的代码!谢谢在线等!:)... 比如说 在框里输入AABBCC 点确定 算出:a=2 b=2 c=2 本人是java新人 希望提供一些容易理解的代码!谢谢 在线等!:) 展开
 我来答
liuyang054
推荐于2017-10-04 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5302万
展开全部

通过循环遍历字符串,然后一个个的比较,记下相同字符的个数就行了。代码如下:

import java.util.Scanner;
import java.util.TreeMap;
/**
 * 从键盘输入16位长整数,编程统计每个数字出现的个数
 * @author young
 *
 */
public class CharMapDemo {
// 统计数字或者字符出现的次数
public static TreeMap<Character, Integer> Pross(String str) {
char[] charArray = str.toCharArray();

TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();

for (int x = 0; x < charArray.length; x++) {
if (!tm.containsKey(charArray[x])) {
tm.put(charArray[x], 1);
} else {
int count = tm.get(charArray[x]) + 1;
tm.put(charArray[x], count);
}
}
return tm;
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个长整数:");
// int temp = sc.nextInt();
// String str = String.valueOf(temp);
// TreeMap<Character, Integer> tm = Pross(str);
// System.out.println(tm);

System.out.println("请输入一个字符串:");
String str = sc.nextLine();
TreeMap<Character, Integer> tm = Pross(str);
System.out.println(tm);
}
}

小肥肥2
高粉答主

推荐于2019-09-05 · 醉心答题,欢迎关注
知道答主
回答量:50
采纳率:100%
帮助的人:1万
展开全部

public class CharCount {

public static void main(String[] args){

int count = 0;

String str = "gfjsjgperjtpojewrjopeqjwrio34rengflkajsaljfrajfasnflanfla";

for(int i = 0; i < str.length(); i++){

if(str.charAt(i)=='j'){

count++;

}

}

System.out.println(count);

}

}

扩展资料:

Java常见字符:

int 型

常量:

123,6000(十进制)|| 077(八进制)|| 0x3ABC(十六进制)

声明:

int x =12 ;

占用字节内存:4

取值范围:-2^31--2^31-1

byte 型

常量:

不存在

声明:

byte x = -12 ;

占用字节内存:1

取值范围:-2^7--2^7-1

short 型

常量:

不存在

声明:

short x = 12;

占用字节内存:2

取值范围:-2^15--2^15-1

long 型

常量:

用后缀 L 来表示,如:108L等

声明:

long width = 12L;

占用字节内存:8

取值范围:-2^63--2^63-1

参考资料来源:百度百科--Java (计算机编程语言)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanzhouyiyu
2009-01-18
知道答主
回答量:59
采纳率:0%
帮助的人:0
展开全部
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
*
* @author Administrator
*/
public class CharacterCounts {

public static void main(String[] args) {
Scanner input = new Scanner(System.in); //使用Scanner接受从键盘的输入
System.out.println("请输入一段字符:");
String str = input.nextLine(); //从键盘接受输入的数据

Map<Character,Integer> tree = new TreeMap<Character,Integer>();//利用TreeMap来保存某个字符出现的次数
for(int i=0;i<str.length();i++)
{
char ch = str.charAt(i);
if(!tree.containsKey(ch)) //如果第一次出现,则初始为1
{
tree.put(ch, 1);
}
else
{
int auto = tree.get(ch)+1; //如果在容器中已存在,则在原来的基础上+1
tree.put(ch, auto);
}
}

// 使用Iterator,方便遍历输出
Iterator<Character> iter = tree.keySet().iterator();
while(iter.hasNext())
{
//获得字符对象信息
char temp = iter.next();

//输出每个字符出现的次数
System.out.println("字母'"+temp+"' 出现"+tree.get(temp)+"次。");
}

}

}

其实和你说的差不多,,不过是我以前做的,写复杂了,,所以将就用把,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-01-18
展开全部
//就爱复杂,用两种方法实现:

//Similar.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Similar {
public static void main(String[] args) {
String s = "aabbbbcccccccAAA";
//map
System.out.println("map:");
Map map = same(s);
Object[] keys = map.keySet().toArray();
Arrays.sort(keys);
for(int i=0; i<keys.length; i++){
System.out.println(keys[i]+"="+map.get(keys[i]));
}
//list
System.out.println("\nlist:");
List list = getSimilar(s);
Collections.sort(list);
for(int i=0; i<list.size(); i++)
System.out.println(list.get(i));
}

//用Map来处理
public static Map same(String s){
Map map = new HashMap();
for(int i=0; i<s.length(); i++){
Character c = new Character(s.charAt(i));
if(map.containsKey(c)){
Integer value = (Integer)map.get(c);
map.put(c,new Integer(value.intValue()+1));
}
else{
map.put(c,new Integer(1));
}
}
return map;
}

//用List+对象来处理
public static List getSimilar(String src){
List list = new ArrayList();
for(int i=0; i<src.length(); i++){
CI kv = new CI();
kv.c=src.charAt(i);
if(list.contains(kv)){
int index = list.indexOf(kv);
((CI)list.get(index)).i++;
}
else{
list.add(kv);
}
}
return list;
}

//
public static class CI implements Comparable{
public char c;//出现的字符
public int i;//出现的字符的次数
public CI(){
i=1;
}
public boolean equals(Object o){
return ((CI)o).c==this.c;
}
public String toString(){
return c+"="+i;
}
public int compareTo(Object o) {
return this.c-((CI)o).c;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
torrent81
推荐于2017-09-11 · TA获得超过277个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:0
展开全部
public class CharCount {
public static void main(String[] args){
int count = 0;
String str = "gfjsjgperjtpojewrjopeqjwrio34rengflkajsaljfrajfasnflanfla";
for(int i = 0; i < str.length(); i++){
if(str.charAt(i)=='j'){
count++;
}
}
System.out.println(count);
}
}
这个问题有楼上那么复杂嘛,这只是给你个思路。怎么做自己想哟
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式