62,623
社区成员
发帖
与我相关
我的任务
分享
String str = "aabcwdsfwewefwfewfeweweggffffff";
char[] arr = str.toCharArray();
int[] counts = new int[128]; // 以字符的ASCII码为索引
char max = 0;
for (char ch : arr) {
counts[ch]++;
System.out.println(counts[ch]);
System.out.println(counts[max]);
if (counts[ch] > counts[max])
max = ch;
}
System.out.println("char=" + max + " count=" + counts[max]);
public String getMaxCountChar(String str){}
//在给定的字符串中,按照出现次数的多少重新排列,结果中不含重复的字符
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;
public class JudgeCharTimes
{
public static String getMaxString(String s) //找出给定字符串中重复次数最多的字符
{
char[] ch = s.toCharArray(); //转换成字符数组
ArrayList lists = new ArrayList();
TreeSet set = new TreeSet();
for( int i = 0; i < ch.length; i++ )
{
lists.add( String.valueOf( ch[i] ) ); //添加到lists
set.add( String.valueOf( ch[i] ) ); //添加去重复后的字符到set
}
// System.out.println("共有如下字符:" + set);
Collections.sort( lists ); //对字符进行排序
// System.out.println( "排序后为:" + lists );
StringBuffer sb = new StringBuffer();
for( int i = 0; i < lists.size(); i++ )
{
sb.append( lists.get( i ) );
}
s = sb.toString();
int maxCount = 0; //次数最多的字符的次数
String maxString = "";
ArrayList array = new ArrayList();
for( int i = 1; i < 3; i++ )
{
Iterator it = set.iterator(); //使用迭代器
while( it.hasNext() )
{
String o = (String)it.next();
int begin = s.indexOf( o );
int end = s.lastIndexOf( o );
int value = end - begin + 1;
if( value > maxCount )
{
maxCount = value;
maxString = o; //此时的o为最大次数的字符
}
}
}
return maxString ;
// return maxString +" " + maxCount; //字符和其次数
}
//----------------------------------------------------------------------------
public static String deleteElement(String s, String max) //删除给定字符串中给定的字符
{
ArrayList list = new ArrayList();
for( int i = 0; i < s.length(); i++ )
{
list.add( s.charAt( i ) ); //添加到list
}
Collections.sort(list);
StringBuffer sb = new StringBuffer();
for( int i = 0; i < list.size(); i++ )
{
sb.append( list.get( i ) );
}
sb.delete( sb.indexOf(max), sb.lastIndexOf(max) + 1 );
return sb.toString();
}
//-------------------------------------------------------------------------
public static String getResult(String s)
{
StringBuffer sb = new StringBuffer();
while( !s.equals( "" ))
{
sb.append( getMaxString( s ));
s = deleteElement( s, getMaxString( s ) );
}
return sb.toString();
}
// ----------------------------------------------------------------------------
public static void main(String[] args)
{
String s = "aasrtfgsadddppoyiutrjgnhgggdfffsdderrrruuubnvmcccvv";
// System.out.println( getResult( s ) ); //返回按次数从大到小的序列,去掉重复
System.out.println( getMaxString( s ) ); //返回最大字符和其次数
}
}
String s="abc,afajsdlkfjalkjfklajdf ajdsfklajsdf;ljqweklrjqwelkr;j";
String[] ss=s.split("s");
System.out.println(ss.length-1);
int j=0;
for (int i=0;i<s.length();i++){
if (s.substring(i,i+1).equals("s")){
j++;
}
}
System.out.println(j);
import java.util.*;
public class Test {
/*统计给定字符串S中出现最多的字符
思路:
用HashMap存储每个字符和其出现次数
然后遍历HashMap找出出现次数最多的那个字符
*/
public static void main(String[] args) {
String s = "hasjdlkfjlasjd;fj";
HashMap<Character,Integer> hs= new HashMap<Character,Integer>();
//依次取出每个字符,存在一个HashMap中,如果已经存在存过,次数+1
for(int i=0;i<s.length();i++) {
Character ch = Character.valueOf(s.charAt(i));
Integer num = hs.get(ch);
hs.put(ch,num == null ? 1 :num.intValue() + 1);
}
//System.out.println(hs);
//遍历HashMap,找出出现次数最多的字符
Iterator it = hs.keySet().iterator();
Character maxChar;
int maxNum = 0;
int tempNum;
Character tempchar = new Character(' ');
while(it.hasNext()) {
tempchar = (Character)it.next();
tempNum = hs.get(tempchar);
if(tempNum > maxNum) {
maxNum = tempNum;
maxChar = tempchar;
}
}
System.out.println(tempchar+ " " + maxNum);
}
}