今日突发奇想,想打印一首古诗试试,就拿一首我最欣赏的古诗给各路Java新手试试数组的基本用法。一共三种方法,都是用数组的基本知识。

首先给大家展示一下《清平调》:

《清平调》
                            李白
云想衣裳花想容,春风拂槛露华浓。
若非群玉山头见,会向瑶台月下逢。

方法1,将诗句的每个字都当作一个数组的元素,利用二维数组进行输出

代码及详情如下:

//   《清平调》
//      李白
//云 想 衣 裳 花 想 容,
//春 风 拂 槛 露 华 浓。
//若 非 群 玉 山 头 见,
//会 向 瑶 台 月 下 逢。Scanner scanner=new Scanner(System.in);
System.out.print("请输入古诗名:");
String name=scanner.nextLine();
System.out.print("请输入作者:");
String author=scanner.nextLine();
System.out.print("请输入你的古诗的行数与列数,以空格隔开:");
int row=scanner.nextInt();//行数-row排
int col=scanner.nextInt();//列数-column纵队,列//二维数组的长度知识点:
//arr.length 表示有多少行,二维数组的元素是一维数组,它的长度可以理解为有多少个一维数组
//arr[0].length 表示有多少列,就是一维数组里有多少个元素//输入
//先定义一个二维数组来存储诗句每个字
String[][] arr3=new String[row][col];
for(int i=0;i<arr3.length;i++) { //arr3.length可以换成rowSystem.out.print("请输入第"+(i+1)+"排古诗,以空格分隔,回车结束:");for(int j=0;j<arr3[0].length;j++) { //arr3[0].length可以换成colarr3[i][j]=scanner.next(); //这里不用nextLine,因为nextLine是读取一排的数据,只以enter结束,用nextLine的话输入的 //时候一排只能输入一个字,要想达到每个字都是数组元素的效果显然nextLIne不适合//而next是读取下一个,忽略有效数值前的无效字符,默认情况下取出空格前的数据,一排可输入多        //个字符,只要以空格隔开就好}
}//输出
//再定义个计数器,用来计换行的位置,每打印一个字就加一,当一排全打印完后count就应该等于列数,此时换行且count清零
int count=0;
System.out.println("  "+name);//输出故事名
System.out.println("\t"+author);//输出诗人,
//这里的格式可以自己调整也可以通过循环来决定打印几个空格
for(int i=0;i<arr3.length;i++) { //外循环代表 行for(int j=0;j<arr3[0].length;j++) {//内循环代表 列System.out.print(arr3[i][j]);count++;if(count==col) {//一行打印完时System.out.println();//换行count=0;//从下一行继续开始计}}
}

方法2:将每一句诗句作为一维数组里的一个元素,而后遍历数组输出

代码及详情如下:

System.out.println("请输入古诗名字:");
String name=new Scanner(System.in).nextLine();
System.out.println("请输入作者:");
String author=new Scanner(System.in).nextLine();
System.out.println("该古诗有几行:");//一维数组,只需要行数就行了,因为每一行诗句是一个元素//输入
int p=new Scanner(System.in).nextInt();//定义行数
String[] arr1=new String[p];//创建一维数组,将一句诗句当成一个元素
for(int i=0;i<p;i++) {//循环遍历数组System.out.print("请输入第"+(i+1)+"行的诗句:");arr1[i]=new Scanner(System.in).nextLine();//输入诗句//这里就能用nextLine,因为我们就是要一行一行的输入
}//输出
System.out.println("  "+name);//输出故事名
System.out.println("\t"+author);//输出诗人
for(int i=0;i<p;i++) {//打印输出每一个元素,就是每一行诗句System.out.println(arr1[i]);
}

方法3:将每个字作为二维数组的元素或者将每句诗句作为一维数组的元素直接在定义数组的时候初始化给数组,而后之久循环遍历数组输出,这里用二维数组进行演示。

代码及详情如下:

String[][] arr= {                            //行{"云","想","衣","裳","花","想","容,"},//0{"春","风","拂","槛","露","华","浓。"},//1{"若","非","群","玉","山","头","见,"},//2{"会","向","瑶","台","月","下","逢。"} //3//列   0    1    2  3    4    5    6
};//输出
System.out.println(" 《清平调》");
System.out.println("\t李白");
//格式可以自己调
int count=0;//用来计换行的位置
for(int i=0;i<arr.length;i++) {//外层循环代表 行for(int j=0;j<arr[0].length;j++) {//内存循环代表 列System.out.print(arr[i][j]);count++;//打印一个字加一if(count==arr[0].length) {//加到最后一列System.out.println();//打印换行count=0;//重置}}
}

Java基础数组——以三种方法打印古诗《清平调》相关推荐

  1. Java声明数组的三种方法

    目录 前言 内容 后记 前言: 这篇主要讲java的三种数组声明方式,这里采用String类型作为典型 内容: package com.izaijia; //数组的三种声明形式 public clas ...

  2. java遍历数组的三种方法

    第一种方法(传统方法) int a[]={1,2,3,4,5}; for(int i=0;i<a.length;i++){System.out.println(a[i]); } 第二种方法(非传 ...

  3. Java创建数组的三种方法

    ■ 第一种: int[] arr=new int[6]; arr[0] = 1; arr[1] = 2 arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; ...

  4. Java创建数组的三种方式 (以及length方法是否能获取数组中元素的个数)

    Java创建数组的三种方法 import java.util.Arrays; public class Sum { public static void main(String[] args){ in ...

  5. Java创建数组的三种方法和ArrayList的用法

    Java创建数组的三种方法和ArrayList的用法 Java创建数组的三种方法 一.声明并赋值 二.声明数组名开辟空间 三.声明数组并指定元素个数 四.多维数组 ArrayList的用法 一.添加元 ...

  6. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  7. matlab创建三维数组的三种方法

    在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为"列",而对于三维数组的第三位则是习惯性的称为"页".在Matlab中将三 ...

  8. Java 键盘输入的三种方法

    Java 键盘输入的三种方法 1.System.in和System.out方法:从控制台接收一个字符,然后将其打印出来 虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能 ...

  9. 实现java字符串反转的三种方法

    实现java字符串反转的三种方法 1.问题描述:将字符串String="abcdefg"实现反转变成 "gfedcba":用java语言实现. 2.解决方法: ...

  10. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

最新文章

  1. 在此处打开命令窗口_这样操作方便多了!简单DOS命令实用技巧详解
  2. 线程的生命周期_[线程设计]通过观察者模式监控线程生命周期
  3. [Windows编程] 监视DLL装载/卸载
  4. android人脸识别技术浅析
  5. 德利捷读码器设置软件_S7-1500PLC+变频器+编码器组成位置控制系统
  6. javascript无限请求_JAVASCRIPT事件循环
  7. (6)通过输入参数(测量数据)构建三维体模型
  8. SWT/JFace常用组件----容器类
  9. STM32 + RT Thread OS 学习笔记[四]
  10. 网站服务器检测工具,服务器网络监测工具
  11. 低俗文章之傻傻分不清楚的IC和ID卡(手稿)
  12. windows7修改或删除曾经保存的远程桌面连接的密码
  13. 制图折断线_cad折断线怎么画,你值得一看的技巧
  14. 汉字应用能力计算机上打印文字,宣传|《汉字应用水平等级及测试大纲》,你能考几级?...
  15. freemyapps 推荐链接
  16. 563. 二叉树的坡度【我亦无他唯手熟尔】
  17. mongo从开始到安装以及遇到的问题
  18. 相机误删照片恢复的步骤是什么?仅需3步,圆满解决
  19. 杰普实训(前端)第一天知识点总结
  20. mingw linux c 开发环境,MSYS2和MINGW的开发环境安装

热门文章

  1. 远程IT运维的升级,“团队协作”
  2. python中def main是什么意思_浅析Python中的main函数
  3. 周围剃光头顶留长发型_四周都剃光,头顶留在发的那叫什么发型
  4. 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件
  5. 电大c语言2017年1月,电大1253+C语言程序设计A(1月)小抄参考
  6. Python机器学习04——惩罚回归
  7. 宝塔同时安装苹果cms海洋cms_苹果cms和海洋cms通用的百度主动推送工具
  8. 解决安装虚拟机vmware无法打开注册表项的问题
  9. 同学们上课,今天我们学习:UI 操作一定要在 UI 线程吗?
  10. ctfshow web入门 SSTI