zoukankan      html  css  js  c++  java
  • 使用java编写控制台程序,在屏幕上打印出“陈”字

    这次"java语言程序设计"的一次作业,比较简单,现在把代码贴在这里。
    使用的是jdk1.6。
    -----------------------------------------------------------------------------------------
    思路:使用FileReader类读取文本文件中的内容到一个StringBuffer对象中,并将其打印到屏幕上。

    代码文件:PrintChenApplication.java  ChenOperator.java

    数据文件:华文楷体.txt

             华文隶书.txt

             宋体.txt

             幼圆.txt

             方正舒体.txt

             黑体.txt

    -->编译成字节码

    javac PrintChenApplication.java ChenOperator.java

    -->运行

    参数解释:参数一为:用以填充的字符  参数二为:字体样式

    字体样式包括:kt --华文楷体

                       ls --华文隶书

                       st --宋体

                       yy --幼圆

                       fs --方正舒体

                       ht --黑体

    无参的情况:填充字符为“#”,字体样式为:“ls --华文隶书”

    有参的情况:填充字符为“@”,字体样式为:“kt --华文楷体”

    PrintChenApplication.java
    1 // 默认使用文件中的字符 华文隶书字体 没有参数或对应的参数不合法
    2  // 包含一个参数且该参数合法 使用该参数的第一个字符
    3  
    4  public class PrintChenApplication
    5 {
    6 public enum FontType
    7 {
    8 FONT_LS, // 隶书
    9 FONT_ST, // 宋体
    10 FONT_FS, // 方正舒体
    11 FONT_YY, // 幼圆
    12 FONT_HT, // 黑体
    13 FONT_KT, // 楷体
    14
    15 FONT_UNKNOWN; // 不明类型
    16 }
    17
    18 // 参数1 获取填充字符
    19 public static char getFillChar(String arg)
    20 {
    21 int ch = (int)arg.charAt(0);
    22 if ((ch>0x20) && (ch<0x7F)) // 在此区间为可见字符
    23 return (char)ch;
    24
    25 return '#';
    26 }
    27
    28 // 参数2 获取字体类型
    29 public static FontType getFontType(String arg)
    30 {
    31 if (0==arg.compareToIgnoreCase("ls"))
    32 return FontType.FONT_LS;
    33 else if (0==arg.compareToIgnoreCase("st"))
    34 return FontType.FONT_ST;
    35 else if (0==arg.compareToIgnoreCase("fs"))
    36 return FontType.FONT_FS;
    37 else if (0==arg.compareToIgnoreCase("yy"))
    38 return FontType.FONT_YY;
    39 else if (0==arg.compareToIgnoreCase("ht"))
    40 return FontType.FONT_HT;
    41 else if (0==arg.compareToIgnoreCase("kt"))
    42 return FontType.FONT_KT;
    43
    44 // 默认为 隶书
    45 return FontType.FONT_LS;
    46 }
    47
    48 public static void main(String arg[])
    49 {
    50 char fill_ch = '#';
    51 FontType font_type = FontType.FONT_LS;
    52
    53 int arg_length = arg.length;
    54 if (arg_length==1)
    55 fill_ch = getFillChar(arg[0]);
    56 else if(arg_length>1)
    57 {
    58 fill_ch = getFillChar(arg[0]);
    59 font_type = getFontType(arg[1]);
    60 }
    61
    62 boolean read_success = false;
    63 ChenOperator chen = new ChenOperator();
    64 // 读取字符文件
    65 switch (font_type)
    66 {
    67 case FONT_LS :
    68 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文隶书.txt");
    69 break;
    70 case FONT_ST :
    71 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\宋体.txt");
    72 break;
    73 case FONT_FS :
    74 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\方正舒体.txt");
    75 break;
    76 case FONT_YY :
    77 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\幼圆.txt");
    78 break;
    79 case FONT_HT :
    80 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\黑体.txt");
    81 break;
    82 case FONT_KT :
    83 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文楷体.txt");
    84 break;
    85 default:
    86 read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文隶书.txt");
    87 break;
    88 }
    89
    90 // 文件读取失败,直接返回
    91 if (!read_success)
    92 {
    93 System.out.println("读取文件失败!");
    94 return;
    95 }
    96
    97 // 打印出字符
    98 chen.printChars(fill_ch);
    99 }
    100 };
    ChenOperator.java
    1 //package PrintChen;
    2
    3 import java.io.*;
    4 //import java.lang.*;
    5
    6
    7 public class ChenOperator
    8 {
    9 public ChenOperator()
    10 {
    11 m_chars = new StringBuffer();
    12 }
    13
    14 // 读取字符文件
    15 public boolean readTxtFile(String path)
    16 {
    17 if (null==path)
    18 return false;
    19
    20 FileReader file_reader = null;
    21 try{
    22 file_reader = new FileReader(path);
    23 }
    24 catch(FileNotFoundException nfe)
    25 {
    26 System.out.println("Not Find the file: "+path+"! Please Check the file whether exists.");
    27 return false;
    28 }
    29 catch(Exception e)
    30 {
    31 System.out.println("Unknown Exception.");
    32 return false;
    33 }
    34
    35 readChars(file_reader);
    36
    37 try{
    38 file_reader.close();
    39 }
    40 catch(IOException ioe)
    41 {
    42 System.out.println("Close file failed!");
    43 return false;
    44 }
    45
    46 return true;
    47 }
    48 // 打印字符
    49 public void printChars(char c)
    50 {
    51 if (c!='#')
    52 {
    53 int length = m_chars.length();
    54 for (int i=0; i<length; i++)
    55 {
    56 if ('#'==m_chars.charAt(i))
    57 m_chars.setCharAt(i, c);
    58 }
    59 }
    60
    61 System.out.println(m_chars.toString());
    62 }
    63 // 获取字符窜
    64 public String getChars()
    65 {
    66 return m_chars.toString();
    67 }
    68
    69 // --------------------------------------
    70 private void readChars(FileReader rd)
    71 {
    72 int ch = 0;
    73 try{
    74 while(-1!=(ch=rd.read()))
    75 {
    76 m_chars.append((char)ch);
    77 }
    78 }
    79 catch(IOException e)
    80 {
    81 System.out.println("IO Exception.");
    82 return;
    83 }
    84 }
    85
    86 // 字符数据
    87 private StringBuffer m_chars;
    88
    89 };
  • 相关阅读:
    Tensorflow项目中--FLAGS=tf.flags.FLAGS
    霍夫变换--直线,圆的识别
    利用手写数字识别项目详细描述BP深度神经网络的权重学习
    安装Tensorflow
    安装Anaconda
    关于hibernate查询映射时无法反序列化问题
    postgresql安装之后修改默认用户密码
    中文乱码之springboot框架中两工程之间参数传递乱码
    springboot注解小记1
    springboot开发笔记
  • 原文地址:https://www.cnblogs.com/kekec/p/1870574.html
Copyright © 2011-2022 走看看