各位高手帮小弟编个程序啊 统计输入的字符串中字母的频率
从键盘上输入一个字符串,该字符串全部由英语字母组成,长度不超过30个字符,以“%”字符作为输入结束的标志(字符“#”不作为字符串的字符)。要求程序能够完成:
1.输入时若输入了字母或“#”以外的字符,应给出出错信息,重新输入。
2.统计输入字符串中没个字母出现的次数,并按次数值由大到小的顺序输出结果.
从键盘上输入一个字符串,该字符串全部由英语字母组成,长度不超过30个字符,以“%”字符作为输入结束的标志(字符“#”不作为字符串的字符)。要求程序能够完成:
1.输入时若输入了字母或“#”以外的字符,应给出出错信息,重新输入。
2.统计输入字符串中没个字母出现的次数,并按次数值由大到小的顺序输出结果.
解决方案 »
- 这个程序不太懂
- 有意思的数组问题
- 线程的优点,是什么呢?
- 新手问:这个程序怎么写呀?
- 请问用JAVA开发桌面应用程序的多吗?谢谢!!
- 用Socket写的实现Smtp的邮件发送端。
- 最新整理的300多个编程设计网站,论坛,有兴趣的朋友可以看看。
- org.apache.mina.core.write.WriteToClosedSessionException
- 请问:自定义的线程类如何使用线程组?
- JDBC相关的问题
- 我按书上编了一个程序FlowLayout,编译能通过,运行却出一个这样的对话框"我按书上编了一个程序Flowlayout,编译难过,运行就出一个框“ 该
- 怎么理解这句话啊:system.getProperty(String key)
public class NJTextField extends JTextField {
private int thisLen = 0;
private int maxLen = Integer.MAX_VALUE; public NJTextField() {
super();
} public NJTextField(int cols, int maxLen) {
super(cols);
this.maxLen = maxLen;
}
public NJTextField(int maxLen) {
super(0);
this.maxLen = maxLen;
}
protected Document createDefaultModel() {
return new LengthLimitedDocument();
}
class LengthLimitedDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws
BadLocationException {
if (str == null || thisLen >= maxLen)
return;
//控制输入的字符是数字即小于等于‘9’大于等于‘0’
if(str.toCharArray()[str.length()-1]>='0' && str.toCharArray()[str.length()-1]<='9'){
if (thisLen + str.length() > maxLen)//如果是最大数将不写入Textfield
str = str.substring(0,maxLen - thisLen);
thisLen += str.length();
super.insertString(offs, str, a);
} }
public void remove(int offs, int len) throws BadLocationException {
thisLen -= len;
super.remove(offs, len);
}
}
}
我这里写的主要是为了控制这个TEXTFIELD不可以输入字符串。我知道的就这些,你自己要的功能你自己改吧。分少了点啊。
public class ReaderChar { public static void main(String[] args) throws IOException {
InputStream in = System.in;
System.out.println("Input a string: end of '%'");
String s = "abcdefghijklmnopqrstuvwxyz";
char c = (char) in.read();
Map m = new TreeMap();
while (c != '%') {
for (int i = 0; i < s.length(); i++) { Character ch = new Character(c);
if (c == s.charAt(i)) {
if (m.containsKey(ch))
((Counter) m.get(ch)).increment();
else
m.put(ch, new Counter());
}
}
c = (char) in.read();
} System.out.println(m);
}
}class Counter{
int i = 1; public String toString() {
return Integer.toString(i);
} public void increment() {
i++;
} }