public static void main(String[] args) { String s = "0111000111100"; char[] c = s.toCharArray(); int num = 1; int max = 1; for (int i = 1; i < c.length; i++) { if (c[i] == c[i - 1]) { num++; } else { max = Math.max(max, num); num = 1; } } System.out.println(max); }
public class Find01 { public static void main(String[] args) { String str="0111000111100"; String str1=str.replaceAll("11*"," "); String str2=str.replaceAll("00*"," "); String[] s0=str1.split(" "); String[] s1=str2.split(" "); int num0=0; int num1=0; for(int i=0;i<s0.length;i++) { if(num0<s0[i].length()) { num0=s0[i].length(); } } System.out.println("num0 is "+num0); for(int i=0;i<s1.length;i++) { if(num1<s1[i].length()) { num1=s1[i].length(); } } System.out.println("num1 is "+num1);
} }
貌似这样也是可以的。 package com.fenghua;public class FindZeroOne { /** * 此方法为仅有两个字符(可多次出现)返回出现次数最多的字符的次数 * @param str * @return */ public static int max01(String str){ int b1=1; int a1=0; char[] a=str.toCharArray(); for(int i=0;i<a.length-1;i++){ if(a[i]==a[i+1]){ b1++; }else{ a1=a1+b1; b1=a1-b1; a1=a1-b1; b1++; } } return Math.max(a1, b1); } public static void main(String[] args){ String str="01010101000000000111111"; System.out.println(max01(str)); }}
String s = "0111000111100";
char[] c = s.toCharArray();
int num = 1;
int max = 1;
for (int i = 1; i < c.length; i++) {
if (c[i] == c[i - 1]) {
num++;
} else {
max = Math.max(max, num);
num = 1;
}
}
System.out.println(max);
}
public class Find01
{
public static void main(String[] args)
{
String str="0111000111100";
String str1=str.replaceAll("11*"," ");
String str2=str.replaceAll("00*"," ");
String[] s0=str1.split(" ");
String[] s1=str2.split(" ");
int num0=0;
int num1=0;
for(int i=0;i<s0.length;i++)
{
if(num0<s0[i].length())
{
num0=s0[i].length();
}
}
System.out.println("num0 is "+num0);
for(int i=0;i<s1.length;i++)
{
if(num1<s1[i].length())
{
num1=s1[i].length();
}
}
System.out.println("num1 is "+num1);
}
}
package com.fenghua;public class FindZeroOne {
/**
* 此方法为仅有两个字符(可多次出现)返回出现次数最多的字符的次数
* @param str
* @return
*/
public static int max01(String str){
int b1=1;
int a1=0;
char[] a=str.toCharArray();
for(int i=0;i<a.length-1;i++){
if(a[i]==a[i+1]){
b1++;
}else{
a1=a1+b1;
b1=a1-b1;
a1=a1-b1;
b1++;
}
}
return Math.max(a1, b1);
}
public static void main(String[] args){
String str="01010101000000000111111";
System.out.println(max01(str));
}}