import java.util.*;
import java.io.*;public class Assignment
{ public static void main(String args[])
{ try{
//由系统输入字符串
System.out.print("请输入一个字符串:");
BufferedReader stdin =
new BufferedReader(new InputStreamReader(System.in)); //读出字符串
String s = stdin.readLine();
System.out.println(); //创建TestString实例
TestString ts = new TestString(); //调用frequent方法为了得到所需字符和出现次数
ts.frequent(s); //打印以下内容
System.out.println("在该字符串中最频繁出现的字符是: " + ts.getChar());
System.out.println("该字符出现的次数为:" + ts.getMax());
System.out.println("反转该字符串后得到新字符串为:" + ts.reverse(s));
System.out.println("该字符串按字母归类得到新字符串为: " + ts.arrange(s));
System.out.println("将该字符串及其反转和归类后的字符串合并并去除空格后得到的新字符串为:" + ts.joinAndTrim(s)); }catch(StringIndexOutOfBoundsException e){
System.err.println("字符串边界错误,请再次运行程序"); //错误信息
}catch(IOException e){
System.err.println("你的输入方式错误");
}catch(Exception e){
System.err.println("系统错误-系统错误文本为:" + e);
}
}
}class TestString
{
//找出字符串中最频繁出现的字符,不区分大小写,不计空格。
//出现次数最多且相同数量的字符只要任取一个即可
public void frequent(String str)
{
} //得到最频繁出现的字符
public char getChar()
{
} //得到最频繁出现的字符出现次数
public int getMax()
{
} //反转字符串
public String reverse(String str)
{
}
//将该字符串按字符顺序归类,即相同字符放在一起,得到新字符串,应区分大小写,空格等。
public String arrange(String str)
{
} //将归类和反转后的字符串和原来的字符串全部连接,并将所有空格去除
public String joinAndTrim(String str)
{
}
}
import java.io.*;public class Assignment
{ public static void main(String args[])
{ try{
//由系统输入字符串
System.out.print("请输入一个字符串:");
BufferedReader stdin =
new BufferedReader(new InputStreamReader(System.in)); //读出字符串
String s = stdin.readLine();
System.out.println(); //创建TestString实例
TestString ts = new TestString(); //调用frequent方法为了得到所需字符和出现次数
ts.frequent(s); //打印以下内容
System.out.println("在该字符串中最频繁出现的字符是: " + ts.getChar());
System.out.println("该字符出现的次数为:" + ts.getMax());
System.out.println("反转该字符串后得到新字符串为:" + ts.reverse(s));
System.out.println("该字符串按字母归类得到新字符串为: " + ts.arrange(s));
System.out.println("将该字符串及其反转和归类后的字符串合并并去除空格后得到的新字符串为:" + ts.joinAndTrim(s)); }catch(StringIndexOutOfBoundsException e){
System.err.println("字符串边界错误,请再次运行程序"); //错误信息
}catch(IOException e){
System.err.println("你的输入方式错误");
}catch(Exception e){
System.err.println("系统错误-系统错误文本为:" + e);
}
}
}class TestString
{
//找出字符串中最频繁出现的字符,不区分大小写,不计空格。
//出现次数最多且相同数量的字符只要任取一个即可
public void frequent(String str)
{
} //得到最频繁出现的字符
public char getChar()
{
} //得到最频繁出现的字符出现次数
public int getMax()
{
} //反转字符串
public String reverse(String str)
{
}
//将该字符串按字符顺序归类,即相同字符放在一起,得到新字符串,应区分大小写,空格等。
public String arrange(String str)
{
} //将归类和反转后的字符串和原来的字符串全部连接,并将所有空格去除
public String joinAndTrim(String str)
{
}
}
解决方案 »
- JAVA EXCLE 曲线图 柱图
- 弱弱的问一下,JAVA能搞ERP软件之类的吗?
- 我有两个类一个是ActionForm一个是pojo,这两个类里的数据完全相同,想要两个类中数据呼唤用get,set方法一个一个的写太麻烦,有没有什么
- 急啊,,如何关闭实例Excel.Application后产生的进程方法
- 怎么通过java应用程序把一个页面显示出来?
- Applet嵌入问题。
- 关于数组,基础问题:
- 写计算器时出错,请高手帮忙看看!
- 图片存入数据库成功,可为什么在数据库中什么都看不到????在线等待!!
- 请问如何用java知道当前运行程序得到焦点的对象?请赐教。谢谢!!!
- java GUI添加全屏键盘事件不可以
- 新手求助帖
import java.util.Map;public class Test { public static void main(String[] args) {
String s = "aaabbbcccccddd";
System.out.println(frequent(s));
} /**
* 记录每个字符出现次数
* @param str
* @return
*/
public static Map<Character, Integer> frequent(String str) {
Map<Character, Integer> retMap = new HashMap<Character, Integer>();
for (int i = 0; i < str.length(); i++) {
Character c = str.charAt(i);
if (retMap.get(c) != null) {
Integer newValue = retMap.get(c) + 1;
retMap.put(c, newValue);
}else{
retMap.put(c,1);
}
}
return retMap;
}
}
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class TestString {
public static void main(String...args) {
String str = " aaabbbc ccccddd ";
TestString t = new TestString();
System.out.println(t.getChar(str));
System.out.println(t.getMax(str));
System.out.println(t.reverse(str));
System.out.println(t.arrange(str));
System.out.println(t.joinAndTrim(str));
}
private Stream<Character> getStream(String str) {
return str.chars().mapToObj(ch -> Character.valueOf((char) ch));
}
private Stream<Character> getUpperStream(String str) {
return str.trim().toUpperCase().chars().mapToObj(ch -> Character.valueOf((char) ch));
}
private Map.Entry<Character, Long> getEntry(String str) {
return getUpperStream(str)
.collect(Collectors.groupingBy(a -> a, Collectors.counting()))
.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).get();
}
//得到最频繁出现的字符
public char getChar(String str) {
return getEntry(str).getKey();
} //得到最频繁出现的字符出现次数
public long getMax(String str) {
return getEntry(str).getValue();
} //反转字符串
public String reverse(String str) {
return new StringBuilder(str).reverse().toString();
} //将该字符串按字符顺序归类,即相同字符放在一起,得到新字符串,应区分大小写,空格等。
public String arrange(String str) {
return getStream(str).sorted().collect(StringBuffer::new, StringBuffer::append, (s, t) -> s.append(t.toString())).toString();
} //将归类和反转后的字符串和原来的字符串全部连接,并将所有空格去除
public String joinAndTrim(String str) {
return (arrange(str) + reverse(str) + str).trim();
}
}
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no args.");
}
}
}像楼主的代码层级多,又没有排版,没法看。