java文件中已知一个字符串,aaaabbbccc
现想知道有几个a 几个b 几个c
并把这个个数用数组的形式输出来
应该输出 [4,3,3]
这如何实现呀,
现想知道有几个a 几个b 几个c
并把这个个数用数组的形式输出来
应该输出 [4,3,3]
这如何实现呀,
解决方案 »
- 谁有JDBC访问MDB的第三方jar开发包,完整版的。高分重谢
- 当收到输入窗口的"确定"按钮才更新数据库,"放弃"则不更新,请问调用该输入窗体的函数怎么获得输入窗口的选择结果?
- JAVA能写操作系统吗
- 怎么知道自己基础学扎实了没
- 多线程访问静态变量 只获得值 不做改变变量操作 是否需要同步
- 要对一个数组不停地进行查找,插入操作,用什么类型的对象好?
- 求最简单算法:关于字串限制(小数点,数字)的
- 高手进阶!请进
- 用JBuilder8设计界面的问题
- 为什么用JAVAMAIL发附件,用OUTLOOK收下来附件文件名的中文成了乱码
- NIO socket编程基础问题,希望热心人解惑!
- java 正则表达式 新浪微博@加链接
public class TestString { /**
* @param args
*/
public static void main(String[] args) {
String str = "aaaabbbccc";
Map<Character, Integer> map = new HashMap<Character, Integer>(); Set<Character> keySet = map.keySet();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i); if (keySet.contains(c)) {
int num = map.get(c);
num++;
map.put(c, num);
} else {
map.put(c, 1);
}
} System.out.print("[");
for (Character character : keySet) {
int num = map.get(character);
System.out.print(character + " = " + num + ",");
}
System.out.print("]");
}}
数组不是一个道理吗
自己改改就是了
用俩个数组
一个当key
一个当value
String s="aaaabbbccc";
Pattern p=Pattern.compile("(\\w)(\\1)*+");
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group()+":"+(m.end()-m.start()));
}
public class StatisticAString
{
public static void main(String[] args)
{
String s="";
Statistic statistic=new Statistic(s); //产生Statistic对象。
char[] chars = statistic.getCharArray(); //取得结果。
int[] result = statistic.getCountArray(); System.out.println(Arrays.toString(chars));
System.out.println(Arrays.toString(result));
}
}
//类Statistic,用于统计字符串中的不同字符,及出现次数。统计之前是按字符排序的。
class Statistic
{
private int[] end=null; //用于保存字符出现次数。
private char[] chEnd=null; //出现的字符,(排序后的)。
public Statistic(String s)
{
getEveryChar(s);
}
public void getEveryChar(String s) //计算。
{
if(s==null||s.length()==0) //字符串没赋值或长度为零。
{
end=new int[0];
chEnd=new char[0];
return;
} char[] c=new char[s.length()];
char[] ch=new char[s.length()];
int[] intArray=new int[s.length()];
for(int i=0,length=s.length(); i<length ;i++)
{
c[i]=s.charAt(i);
}
Arrays.sort(c); //排序.
intArray[0]=1;
ch[0]=c[0];
int count=0;
for(int i=0;i<c.length-1;i++)
{
if(c[i+1]==c[i])
{
intArray[count]++;
}
else
{
intArray[++count]++;
ch[count]=c[i+1];
}
}
end = Arrays.copyOf(intArray,count+1); //紧缩。
chEnd= Arrays.copyOf(ch,count+1); //紧缩。
}
public char[] getCharArray()
{
return chEnd;
}
public int[] getCountArray()
{
return end;
}
}
不能什么都用自定义数组,多用点java提供的工具。
int[] counts = new int[26];
for(char c : str.toCharArray())
counts[c - 'a']++;
for(int i = 0; i < 26; i++)
if(counts[i] > 0)
System.out.println((char)(i + 'a') + ":" + counts[i]);
int[] counts = new int[26];
for(char c : str.toCharArray())
{
counts[c - 'a']++;
}
for(int i = 0; i < 26; i++)
if(counts[i] > 0)
System.out.println((char)(i + 'a') + ":" + counts[i]);
这是正解
利用数组,每个字母的ASCII码不同,所以数组下标不同,相同的数组下标的值进行想加得到你想要的结果
//运行结果[4,3,3]
public class Tjgs{
public static void main(String[] args){
String str="aaaabbbccc";
int[] a=new int[3];
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='a'){
a[0]+=1;
}
if(str.charAt(i)=='b'){
a[1]+=1;
}
if(str.charAt(i)=='b'){
a[2]+=1;
}
}
System.out.println("["+a[0]+","+a[1]+","+a[2]+"]");
}
}
* @param args
*/
public static void main(String[] args) {
String str = "dfdekjkaamkdkdeifdfdfjdf";
while(str.length() > 0) {
char tempChar = str.charAt(0);
int lengthOld = str.length();
str = str.replaceAll(tempChar + "", "");
int lengthNew = str.length();
System.out.println(tempChar + "的个数为:" + (lengthOld - lengthNew));
}
}
}
{
String str = "cb+xz==bv-avd-vgd";
charCount(str);
} public static void charCount(String str)
{ //定义一个可排序的集合。
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
//1,将字符串变成字符数组。
char[] chs = str.toCharArray();
//2,遍历数组。
for(int x=0; x<chs.length; x++)
{
if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
continue;
//将字母作为键去查map集合。获取对应的值。
Integer i = tm.get(chs[x]);
if(i==null)
{
tm.put(chs[x],1);
}else
{
i++;
tm.put(chs[x],i);
}
}
System.out.println(mapToString(tm));
}
private static String mapToString(TreeMap<Character,Integer> tm)
{
StringBuilder sb = new StringBuilder();
Iterator<Character> it = tm.keySet().iterator();
while(it.hasNext())
{
Character key = it.next();
Integer value = tm.get(key);
sb.append("["+key+","+value+",");//如果不想显示字母就把key和','去掉
}
sb.append("]");
return sb.toString();
}