`
rex0654335
  • 浏览: 27222 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 练习

    博客分类:
  • java
 
阅读更多



 

 

import java.io.*;
public class  CharCounter{
	private int[] charcount = new int[26];
	Chart chart;
	public CharCounter(String filename){
		BufferedReader br = null;
		try{
			 br = new BufferedReader(new FileReader(filename));
			 String str=null;
			 while((str=br.readLine())!=null){
				str=str.toUpperCase();
				for(int i =0,length = str.length();i<length;i++){
					char ch = str.charAt(i);
					int index = ch-'A';		 //A-0,B-1....
					if(index>=0 && index <= 25)charcount[index]++;
				}
			 }
			 br.close();
			 chart = new Chart(new String[]{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"},charcount,"*");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	public void plainOut(){
		chart.plainOut();
	}
	public void horizontalOut(){
		chart.horizontalOut();
	}
	public void verticalOut(){
		chart.verticalOut();
	}
	public static void main(String[] args){
	     // new CharCounter("input.txt").horizontalOut();
		  new CharCounter("input.txt").verticalOut();
			//new CharCounter("input.txt").plainOut();

	}
}

class Chart{
	private String[] label;
	private int[] data;
	private String style;
	private RotateArray ra ;
	public Chart(String[] label,int[] data,String style){
		this.label = label;
		this.data = data;
		this.style = style;
		fillData();
	}
	public void fillData(){
		int max = max(data);
		String[][] str = new String[data.length][max+2];
		for(int i =0,len = data.length;i<len;i++){
			
			for(int j =0;j< max+2;j++){
				if(j>0&& j<data[i])str[i][j] = style;
				else str[i][j] = " ";
			}
			str[i][0] = label[i];
			str[i][max+1] = ""+data[i];
		}
		ra = new RotateArray(str);
	}
	public static String multi(String s,int rate){
		String str ="" ;
		for(int i =0;i<rate;i++){
			str+=s;
		}
		return str;
	}
	public static int max(int[] data){
		int max = data[0];
		for(int i =1,len = data.length;i<len;i++){
			if(max<data[i])max=data[i];
		}
		return max;
	}
	public void plainOut(){
		for(int i =0;i<label.length;i++){
			System.out.println(label[i]+":"+data[i]);
		}
	
	}
	public void horizontalOut(){
		out(ra.get());
	}
	public void verticalOut(){
		out(ra.rotate(-1).get());
	}
	public void out(String[][] a){
			for(int i =0;i<a.length;i++){
				for(int j =0;j<a[i].length;j++){
					System.out.print(a[i][j]+multi(" ",1));
				}
				System.out.println();
			}
	}

}

class RotateArray{
	private String[][] original ;
	private String[][] rotatedArray ;
	public RotateArray(String[][] a){
		this.original = a;
	}
	public RotateArray rotate(int rate){  
		for(int i =0,len =rate>=0? rate%4:rate%4+4;i<len;i++){
			rotate();
		}
		return this;
	}
	public RotateArray rotate(){
		int rows = rotatedArray==null?original[0].length:rotatedArray[0].length;
		int cols = rotatedArray==null?original.length:rotatedArray.length;
		String[][] temp = new String[rows][cols];
			for(int i =0,len = temp.length;i<len;i++){
				for(int j =0,len2 = temp[i].length;j<len2;j++){
					if(rotatedArray!=null)temp[i][j] = rotatedArray[len2-1-j][i];
					else temp[i][j] = original[len2-1-j][i];
				}
			}
		rotatedArray = temp;
		return this;
	}
	public String[][] get(){
		return rotatedArray!=null?rotatedArray:original;
	}
}
 
  • 大小: 43.6 KB
  • 大小: 35.1 KB
0
0
分享到:
评论

相关推荐

    java练习小项目

    【Java练习小项目:城市人口管理系统】 在编程学习过程中,实践是提升技能的关键。这个"Java练习小项目"就是这样一个实战平台,旨在帮助Java初学者或爱好者加深对编程语言的理解,特别是面向对象的设计和数据结构的...

    Java 练习题附答案

    这份"Java练习题附答案"资源显然旨在帮助学习者提升他们的Java编程技能。以下是对这个主题的详细解析: 1. **基础语法**:Java的基础包括变量、数据类型、运算符、流程控制(如if语句,for和while循环)以及方法...

    java练习题大全

    接下来,我们根据提供的文件内容详细解析Java练习题中所涉及的关键知识点。 1. Java语言的优点和特点之一是多线程,这允许Java程序能够并行执行多个任务。Java的多线程机制是Java语言的强大功能之一,它支持并发...

    初级java练习项目

    这个“初级Java练习项目”旨在帮助新手掌握Java的基础知识,并通过实际操作来提升编程技能。项目可能包括一系列小任务和挑战,旨在涵盖Java的核心概念,如变量、数据类型、控制流、函数、类和对象等。 1. **变量与...

    java练习之模拟SPRING IOC,我的SUMMER

    在本Java练习中,我们将深入理解并实现Spring框架的核心组件——IoC(Inversion of Control,控制反转)容器。这个练习分为三个主要部分,旨在帮助我们掌握XML配置文件的读取,模拟Spring的IoC机制,以及对Struts...

    JAVA 练习题 30章 循序渐进的30章练习 适合初学者

    本资料提供了30章循序渐进的Java练习题,旨在帮助初学者系统地学习和巩固Java编程技术。 第1章:基础语法 这一章涵盖了Java的基础语法,包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、运算符(如算术...

    我做过的经典java练习题

    这里提到的“我做过的经典java练习题”可能是一个集合,包含了作者在学习Java过程中遇到的一些具有代表性的题目。这些题目可能涵盖了许多Java的基础知识,如语法、数据类型、控制结构、类与对象、异常处理、多线程、...

    Thinking In Java 练习题答案 第四版

    这个压缩包中的"Thinking In Java 练习题答案 第四版"文件,包含了上述所有主题的练习题解答,通过对照解答,读者可以检查自己的理解是否准确,对不理解的部分进行深入研究,从而巩固和深化Java编程技能。...

    Thinking in java 练习题答案

    - **标题:** Thinking in java 练习题答案 - **知识点:** 1. **Thinking in Java(TIJ):** 是由Bruce Eckel所著的一本介绍Java编程语言的书籍。它被广泛认为是学习Java的权威指南之一,尤其适合初学者和中级...

    Core.Java练习题与编程规范

    《Core Java练习题与编程规范》 在Java编程的学习过程中,掌握Core Java是至关重要的一步。Core Java涵盖了语言基础、集合框架、IO流、多线程、网络编程等多个核心领域,是成为一名合格Java开发者的基石。本文将...

    小日历(java练习)

    "小日历(java练习)"项目显然是一个用于学习和实践这些概念的实例,特别是关注日期的显示和换月功能。 1. **Java日期API基础**: 在Java 8之前,日期和时间处理主要依赖`java.util.Date`和`java.util.Calendar`类。...

    Thinking in Java 练习题答案

    这本书的练习题是学习Java的重要组成部分,因为它们能够帮助读者巩固理论知识并提升实践能力。以下是对"Thinking in Java 4Edition 练习题答案"的一些关键知识点的详细解释: 1. **基础语法**:在书中,读者会遇到...

    java练习系统

    Java练习系统是一款专为初学者设计的编程学习工具,它以Java语言为核心,涵盖了各种经典题型,旨在帮助用户通过实践提升Java编程技能。这款系统不仅提供了丰富的练习题目,还具有独特的功能,如每步得分显示,使得...

    java练习助手

    奶爸原创Java练习助手,总结了810道练习题,涵盖了JavaSE方面的所有基础知识:每天坚持练100题,一个月就可以熟练掌握JavaSE方面的知识点,都是最基本,必须会的题,都是问答题,没有选择题,编程就必须不断的敲代码...

    JAVA 练习,小游戏!.zip

    JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA ...

    模仿蓝桥杯java练习系统

    【标题】:“模仿蓝桥杯java练习系统” 这个项目标题表明了这是一个仿照蓝桥杯竞赛平台构建的Java练习系统。蓝桥杯是一项知名的编程竞赛,涵盖了多种编程语言,包括Java,旨在提升参赛者的编程技能和算法理解能力。...

    Java练习50道

    Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道Java练习50道

    java练习源码

    "java练习源码"指的是提供给初学者或开发者用于实践和学习的Java代码示例。这些源码通常涵盖基础概念,如数据类型、控制结构、类与对象、异常处理等,同时也会涉及到更高级的主题,比如多线程、网络编程和数据库操作...

Global site tag (gtag.js) - Google Analytics