java相同字符连续出现的次数
6个回答
展开全部
变量定义的不怎么样 别笑话 这个是你要的结果吧 实现是这样的 代码可以美化下 你自己弄吧
结果是判断哪个字符连续出现的次数最多
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);
}
}
结果是判断哪个字符连续出现的次数最多
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);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是某个字符出现的次数吗?比如你的字符串里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);
}
}
“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);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是要算出一个字符串出现最多的次数是多少吗?应该是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());
}
}
}
}
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());
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有那么麻烦吗
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);
}
}
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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));
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));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询