帮我看看这个程序,在线等!!!急

ldshalh520 2008-01-10 10:56:28
这个程序是要统计排序 "Language Specification"

要求输出:a:3,c:2,e:2…
aaaccee

我现在已经做到了 a:3,c:2,e:2...

现在不知道怎么输出下面 aaaccee


/*
* Test
*
*/

package cn.com.shdb.jt;

import java.util.ArrayList;
import java.util.List;
import java.util.Hashtable;
import java.util.Enumeration;

public class Test {
public static void main(String[] args) {
String str = "Language Specification";
str = str.replaceAll(" ","");
proc(str);
}

public static void proc(String name) {
Hashtable Num = add (name);
List Test = get (Num);
Test = sort(Test);
out(Test,Num);

}

public static Hashtable add(String name) {

Hashtable Num = new Hashtable ();

for (int i=0;i< name.length();i++) {
String bata = name.substring(i,i+1).toLowerCase();

if (Num.containsKey(bata)) {
int out = ((Integer) Num.get(bata)).intValue()+1;
Num.put(bata ,out);
}

else {
Num.put (bata,1);
}

}
return Num;
}

public static List get(Hashtable Num) {
List Test = new ArrayList ();
for (Enumeration e = Num.keys(); e.hasMoreElements() ;) {
Test.add( e.nextElement());
}
return Test;
}


public static List sort(List Test) {

int k;
int j;
String temp = new String();

for(int i=0; i< Test.size();i++) {
for ( j=i,k=i ; j< Test.size(); j++) {
String A = (String)Test.get(j);
String B = (String)Test.get(k);
if (A.compareTo(B)< 0)
k=j;
}
temp=(String)Test.get(i);
Test.set(i, (String)Test.get(k));
Test.set(k,temp);
}
return Test;
}
public static List out(List testGet,Hashtable numGet) {
for (int i=0;i<testGet.size() ;i++ ) {
System.out.print((String)testGet.get(i) +":"
+ numGet.get(testGet.get(i)).toString ()+",");

}

}
}
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldshalh520 2008-01-10
  • 打赏
  • 举报
回复


我只想在我的程序上面做~
imA 2008-01-10
  • 打赏
  • 举报
回复
public class Test {

/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
String s="Language Specification";
java.util.Map stat=new java.util.HashMap();
char[] cs=s.toCharArray();
for(int i=0;i<cs.length;i++){
if(cs[i]!=' '){
Integer count=(Integer)stat.get(new Character(cs[i]));
if(count!=null){
count++;
stat.put(new Character(cs[i]),count);
}
else{
stat.put(new Character(cs[i]),new Integer(1));
}
}
}
java.util.Set keyset=stat.keySet();
Object[] keyarray=keyset.toArray();
java.util.Arrays.sort(keyarray);

StringBuffer sb=new StringBuffer();
for(int i=0;i<keyarray.length;i++){
int count=((Integer)stat.get(keyarray[i])).intValue();
System.out.print(keyarray[i]+":"+count+",");
for(int j=0;j<count;j++)
sb.append(keyarray[i]);
}
System.out.println();
System.out.println(sb.toString());
}
}
liuyi900 2008-01-10
  • 打赏
  • 举报
回复
说错了 我楼上的大哥 IMA的 学习中
liuyi900 2008-01-10
  • 打赏
  • 举报
回复
楼上大哥的代码真严谨
liuyi900 2008-01-10
  • 打赏
  • 举报
回复
public static void out(List testGet,Hashtable numGet) {
for (int i=0;i <testGet.size() ;i++ ) {
System.out.print((String)testGet.get(i)+":"
+ numGet.get(testGet.get(i)).toString()+",");

}
for(int i=0;i<testGet.size();i++)
{
String c=(String)testGet.get(i);
for(int j=0;j<((Integer)numGet.get(c)).intValue();j++)
{
System.out.print(c);
}
}

}
测试输出结果:a:3,c:2,e:2,f:1,g:2,i:3,l:1,n:2,o:1,p:1,s:1,t:1,u:1,aaacceefggiiilnnopstu
我也是菜鸟 自己照资料改的
imA 2008-01-10
  • 打赏
  • 举报
回复


package cn.com.shdb.jt;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;

public class Test {
public static void main(String[] args) {
String str = "Language Specification";
str = str.replaceAll(" ", "");
proc(str);
}

public static void proc(String name) {
Hashtable Num = add(name);
List Test = get(Num);
Test = sort(Test);
out(Test, Num);

}

public static Hashtable add(String name) {

Hashtable Num = new Hashtable();

for (int i = 0; i < name.length(); i++) {
String bata = name.substring(i, i + 1).toLowerCase();

if (Num.containsKey(bata)) {
int out = ((Integer) Num.get(bata)).intValue() + 1;
Num.put(bata, out);
}

else {
Num.put(bata, 1);
}

}
return Num;
}

public static List get(Hashtable Num) {
List Test = new ArrayList();
for (Enumeration e = Num.keys(); e.hasMoreElements();) {
Test.add(e.nextElement());
}
return Test;
}

public static List sort(List Test) {

int k;
int j;
String temp = new String();

for (int i = 0; i < Test.size(); i++) {
for (j = i, k = i; j < Test.size(); j++) {
String A = (String) Test.get(j);
String B = (String) Test.get(k);
if (A.compareTo(B) < 0)
k = j;
}
temp = (String) Test.get(i);
Test.set(i, (String) Test.get(k));
Test.set(k, temp);
}
return Test;
}

public static void out(List testGet, Hashtable numGet) {
StringBuffer sb=new StringBuffer();
for (int i = 0; i < testGet.size(); i++) {
int count=((Integer)numGet.get(testGet.get(i))).intValue();
System.out.print(testGet.get(i) + ":"+ count + ",");
for(int j=0;j<count;j++)
sb.append(testGet.get(i));
}
System.out.println();
System.out.println(sb.toString());

}
}
ldshalh520 2008-01-10
  • 打赏
  • 举报
回复
我不会阿,请你帮帮我啊~
imA 2008-01-10
  • 打赏
  • 举报
回复
晕,我上面给你的就是思路啊,你完全可以在你的程序基础上实现啊

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧