怎么写?求教

saraAnd 2016-10-29 12:12:25
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)
{
}
}
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2016-11-01
  • 打赏
  • 举报
回复
楼主要学会贴代码
public class Demo {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("no args.");
        }
    }
}
像楼主的代码层级多,又没有排版,没法看。
解开者 2016-10-31
  • 打赏
  • 举报
回复
java8包治百病
import java.util.Comparator;
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();
	}
}
喵爱旺 2016-10-30
  • 打赏
  • 举报
回复
帮楼主实现了一个 frequent 方法可以参照下。
package com.zzp.demo;

import java.util.HashMap;
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;
	}
}
saraAnd 2016-10-30
  • 打赏
  • 举报
回复
不会写那些方法
jianyucsdn 2016-10-29
  • 打赏
  • 举报
回复
楼主的问题具体是什么

62,621

社区成员

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

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