java相同字符连续出现的次数

如这个字符串是abbcccbba,那么这个数应该是3是连续出现的,应该是C,连续出现3次... 如这个字符串是abbcccbba ,那么这个数应该是 3
是连续出现的,应该是C,连续出现3次
展开
 我来答
xuchongqi2012
2012-06-15 · TA获得超过113个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:123万
展开全部
变量定义的不怎么样 别笑话 这个是你要的结果吧 实现是这样的 代码可以美化下 你自己弄吧
结果是判断哪个字符连续出现的次数最多
public class Test {
public static void main(String[] args) {
String s = "absdasdasss";
Map<String, Integer> map = new HashMap<String, Integer>();
for(int i =0; i<s.length();i++){
char a = s.charAt(i);
int j = i+1;
while(j<s.length()){
char b = s.charAt(j);
if(a!=b){
break;
}
j++;
}
Integer n = map.get(String.valueOf(a));
if(n!=null){
if(n < j-i){
map.put(String.valueOf(a), j-i);
}
}else{
map.put(String.valueOf(a), j-i);
}
i=j-1;
}
String s1 = "";
int n1 =0;
for(Object o : map.keySet()){
if(map.get(o)>n1){
n1= map.get(o);
s1=(String) o;
}
}
System.out.println(s1+":"+n1);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好大木头
2012-06-15 · TA获得超过1434个赞
知道大有可为答主
回答量:1705
采纳率:0%
帮助的人:1930万
展开全部
是某个字符出现的次数吗?比如你的字符串里a出现的次数?

“abbcccbba”.split("a").length-1 就行了

如下代码统计字符串里,连续出现次数最多的字符
package test;

public class TestMaxNumberSequence {
public static void main(String[] args) {
String str = "abbcccbbaaa";
char c1, cMax;
int num1, numMax;
num1 = numMax = 0;
char[] chs = str.toCharArray();
c1 = cMax = chs[0];
num1 = numMax = 1;
for (int i = 1; i < chs.length; i++) {
if (chs[i] == c1) {
num1++;
} else {
if (num1 > numMax) {
cMax = c1;
numMax = num1;
}
c1 = chs[i];
num1 = 1;
}
}
if (num1 > numMax) {
cMax = c1;
numMax = num1;
}
System.out.println(cMax + "=" + numMax);
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
运颜si
2012-06-15 · TA获得超过404个赞
知道答主
回答量:256
采纳率:0%
帮助的人:91.9万
展开全部
你是要算出一个字符串出现最多的次数是多少吗?应该是c,出现4次
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test1 {
public static void main(String[] args) {
while (true) {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("请输入你要查找的字符串,如要结束请键入END:");
String s = "";
try {
s = br.readLine();
if (s.equals("END") || s.equals("end")) {
System.out.println("退出程序");
System.exit(0);
}
for (int r = 0; r < s.length()-1; r++) {
for (int i = r + 1; i <= s.length(); i++) {
if (i <= s.length()) {
String dd = s.substring(r, i);
if (s.indexOf(dd) != -1) {
String tmps = s.replaceAll(dd, "");
int len=(s.length()-tmps.length())/dd.length();
if(len>1){//只有大于一次的才记录
System.out.println(dd+"重复出现的次数:"+len);
}

}
}
}
}
} catch (IOException e) {
System.out.println("程序出错:" + e.getMessage());
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞翔的足球鞋
2012-06-15 · TA获得超过106个赞
知道答主
回答量:57
采纳率:0%
帮助的人:29.1万
展开全部
有那么麻烦吗
package web;

public class Tongji {
/**
* 就拿“字”做的例子
* @param args
*/
public static void main(String[] args) {
String str = "统计一个字符在字符数组中的出现的次数";
count(str, '字');
}
public static void count(String str, char key){
int count =0;
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
//跟踪语句//输出当前的变量状态值
if(c==key){
//i->{};
//跟踪语句
count +=1;
}
}
System.out.println(count);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aoisora_blue
2012-06-15 · TA获得超过412个赞
知道小有建树答主
回答量:583
采纳率:0%
帮助的人:366万
展开全部
Pattern p = Pattern.compile("((\\w)\\2+)");
String a = "abbcccbba";
Matcher m = p.matcher(a);
ArrayList<Integer> list = new ArrayList<Integer>();
while(m.find()){
list.add(m.group(1).length());
}
Collections.sort(list);
System.out.println(list.get(list.size()-1));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式